在 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 个结果。这意味着“大小”属性对我的目的毫无用处。
有没有办法让我的搜索在找到与模糊搜索匹配的单个记录后立即停止搜索,而不是在返回响应之前处理索引中的每条记录?我是否误解了一些更基本的东西?
提前致谢。