В MySQL я могу сделать что-то вроде:
SELECT id FROM table WHERE field = 'foo' LIMIT 5
Если в таблице 10000 строк, то этот запрос выполняется намного быстрее, чем если бы я пропустил часть LIMIT.
В ElasticSearch у меня есть следующее:
{
"query":{
"fuzzy_like_this_field":{
"body":{
"like_text":"REALLY LONG (snip) TEXT HERE",
"max_query_terms":1,
"min_similarity":0.95,
"ignore_tf":true
}
}
}
}
Когда я запускаю этот поиск, это занимает несколько секунд, в то время как mysql может возвращать результаты для того же запроса гораздо, гораздо меньше времени.
Если я передам параметр размера (установлен в 1), он успешно вернет только 1 результат, но сам запрос не будет быстрее, чем если бы я установил размер неограниченным и вернул все результаты. Я подозреваю, что запрос выполняется полностью, и после обработки запроса возвращается только 1 результат. Это означает, что атрибут «size» для моих целей бесполезен.
Есть ли способ, чтобы мой поиск прекратил поиск, как только он обнаружит одну запись, которая соответствует нечеткому поиску, вместо обработки каждой записи в индексе перед возвратом ответа? Я неправильно понимаю что-то более фундаментальное?
Заранее спасибо.