신축성있는 검색에서 DSL을 처음 사용했습니다. 나는 탄성 검색에서 색인을 쿼리하는 파이썬을 시도하고있다. 다음은 쿼리를 사용하여 필터링하려고하는 문서입니다. ElasticSearch의 DSL 쿼리 - 용어 쿼리
{u'_id': u'5',
u'_index': u'data',
u'_score': 1.0,
u'_source': {u'attributes': {u'Accepts Credit Cards': False,
u'Parking': {u'garage': False,
u'lot': False,
u'street': False,
u'valet': False,
u'validated': False},
u'Price Range': 2},
u'business_id': u'HZdLhv6COCleJMo7nPl-RA',
u'categories': [u'Shopping',
u'Home Services',
u'Internet Service Providers',
u'Mobile Phones',
u'Professional Services',
u'Electronics'],
u'city': u'Pittsburgh',
u'full_address': u'301 South Hills Village\nPittsburgh, PA 15241',
u'hours': {u'Friday': {u'close': u'17:00', u'open': u'10:00'},
u'Monday': {u'close': u'21:00', u'open': u'10:00'},
u'Saturday': {u'close': u'21:00', u'open': u'10:00'},
u'Sunday': {u'close': u'18:00', u'open': u'11:00'},
u'Thursday': {u'close': u'17:00', u'open': u'10:00'},
u'Tuesday': {u'close': u'21:00', u'open': u'10:00'},
u'Wednesday': {u'close': u'21:00', u'open': u'10:00'}},
u'latitude': 40.35762,
u'longitude': -80.05998,
u'name': u'Verizon',
u'neighborhoods': [],
u'open': True,
u'review_count': 5,
u'stars': 2.5,
u'state': u'PA',
u'type': u'business'},
u'_type': u'business'}
나는 파이썬에서 아래 필터 쿼리를 사용하고,이 문서를 효율적으로 활용하려면 다음
es.search(index = 'data', doc_type = 'business', body = {
'query' : {
'filtered' : {
'filter' : {
'bool' : {
'must' : {'term' : {'name' : 'Verizon'}}
}
}
}
}
})
하지만이 쿼리에는 안타를 받고 없습니다입니다. 내가 얻는 결과는 다음과 같습니다.
{u'_shards': {u'failed': 0, u'successful': 5, u'total': 5},
u'hits': {u'hits': [], u'max_score': None, u'total': 0},
u'timed_out': False,
u'took': 1}
그러나 쿼리에서 "용어"를 "일치"로 바꾸면 원하는 결과를 얻습니다. 내가 실수를하고있는 곳을 알려줘.
고마워요! 이것은 많은 도움이 !! –