Roh*_*agh 10 full-text-search elasticsearch
我有一个问题,我想将弹性搜索的结果数量减少到1,000,无论匹配的匹配结果有多少,但这不应影响排名和评分.
我正在尝试terminate_after,但这似乎只是告诉弹性搜索只是获得前N个结果而不考虑分数.如果我错了,请纠正我.
对此有何帮助?
编辑:
我已经在使用分页了.因此,在From/Size中使用Size 只会影响当前页面的大小.但我想将总结果的大小限制为1,000,然后分页.
您可以将大小指定为参数。
GET /_search?size=1000
{
"query" : {
//your query
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用From / Size来返回所需的结果数:
GET /_search
{
"from" : 0, "size" : 1000,
"query" : {
//your query
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个问题自从被问到之后就有点老了,但我偶然发现了这个问题,我很惊讶没有人能给出正确的答案。
Elasticsearch指数有一个索引模块叫max_result_window。您可以在动态索引设置下的文档中找到它。
index.max_result_window
搜索此索引时from+ 的最大值size。默认为10000. 搜索请求占用堆内存和时间与from+成正比size,这限制了内存。请参阅Scroll或Search After以获得更有效的替代方法。
因此,基本上不是限制from或size(或它们的组合),您设置max_result_window为1000并且 ES 将只返回每个请求最多 1000 次点击。
如果您在单独的 JSON 文件中使用索引定义来创建索引,则可以在yourindexname.settings.index.max_result_window.
我希望这可以帮助仍在寻找解决此问题的方法的人们!