В MySQL я могу сделать что-то вроде:
SELECT id FROM table WHERE field = 'foo' LIMIT 5
Если в таблице 10 000 строк, то этот запрос выполняется намного быстрее, чем если бы я не использовал часть 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 результат. Это означает, что атрибут "размер" бесполезен для моих целей.
Есть ли способ остановить мой поиск, как только он найдет одну запись, которая соответствует нечеткому поиску, вместо обработки каждой записи в индексе перед возвратом ответа? Не понимаю ли я чего-то более фундаментального по этому поводу?
Заранее спасибо.