在MySQL中我可以這樣做:彈性極限搜索結果
SELECT id FROM table WHERE field = 'foo' LIMIT 5
如果表中有10,000行,那麼這個查詢方式比,如果我離開了限位件的方式更快。
在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個結果。這意味着「大小」屬性對我的目的沒用。
有沒有什麼辦法讓我的搜索一找到匹配模糊搜索的單個記錄就停止搜索,而不是在返回響應之前處理索引中的每條記錄?我誤解了一些更重要的東西嗎?
在此先感謝。