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つだけだと思います。これは、「サイズ」属性が私の目的には役に立たないことを意味します。
応答を返す前にインデックス内のすべてのレコードを処理するのではなく、あいまい検索に一致する単一のレコードが見つかったらすぐに検索を停止する方法はありますか?私はこれについてもっと根本的なことを誤解していますか?
前もって感謝します。