2017-01-05 6 views
1

Результат префиксного запроса ElasticSearch возвращает только документы, соответствующие запросу. Есть ли способ, которым я могу настроить запрос, также вернуть «точный термин (и)» для каждого документа, который привел к совпадению?Получить условия, соответствующие префиксному запросу в ElasticSearch

ответ

1

Да. Вам нужно использовать термин вместо соответствия, и вы получите точный срок. См. documentation

+0

Я не могу использовать термин, потому что все поля анализируются. Кроме того, _source не включен для меня. – Sau

1

Ну, используя Highlighting, вы получите текст с выделенными словами. То есть:

GET /_search 
{ 
    "query": { 
    "prefix": { "DESCRIPTION": "arthu"} 
    }, 
    "highlight": { 
     "fields" : { 
      "DESCRIPTION" : {} 
     } 
    } 
} 

Извлекает что-то вроде:

{ 
     "_index": "abc", 
     "_type": "xyz", 
     "_id": "107507", 
     "_score": 1, 
     "_source": { 
      "DESCRIPTION": "Arthur: Attack of the Turbo Tibbles/D.W. Tricks the Tooth Fairy" 
     }, 
     "highlight": { 
      "DESCRIPTION": [ 
      "<em>Arthur</em>: Attack of the Turbo Tibbles/D.W. Tricks the Tooth Fairy" 
      ] 
     } 
     } 

Вы также можете настроить оберточную тег (EM). Но я не уверен, как извлечь из него только согласованные слова.

Посмотрите эту нить в любом случае. Я не понимаю реализации, но это может помочь: Determining which words were matched in a fuzzy search

В основном он предложил сделать это:

GET /common_clarovideo/grupo/_search 
{ 
    "_source": [ 
    "NOMBRE_INTERNO" 
    ], 
    "query": { 
    "prefix": { "NOMBRE_INTERNO": "arthu"} 
    }, 
    "highlight": { 
     "fields" : { 
      "NOMBRE_INTERNO" : {"fragment_size" : 5} 
     } 
    } 
} 

Значение «fragment_size» должен соответствовать длине вашего члена. Надеюсь это поможет.

+0

Я думал об использовании подсветки, но для этого нужен источник. В моем случае я не храню источник из-за чувствительных данных. – Sau

+0

Я думаю, что я должен быть более конкретным с моей проблемой. Учитывая префиксный запрос, мне нужно найти все термины, соответствующие префиксу, и количество документов, соответствующих каждому термину. Итак, еще одна проблема с подходом подсветки заключается в том, что мне придется разбивать страницы на все страницы, чтобы получить счет, который может вызвать проблему с большим количеством документов. – Sau

Смежные вопросы