当前位置: 首页 > 知识库问答 >
问题:

限制弹性搜索返回的结果数

齐凯康
2023-03-14

我有一个问题,我想把弹性搜索的结果减少到1000个,不管有多少匹配的结果匹配,但这不应该影响排名和得分。

我在尝试terminate_after,但这似乎只是告诉弹性搜索只获得前N个结果,而不考虑分数。如果我说错了,请纠正我。

有什么帮助吗?

编辑:

我已经在使用分页。因此,在From/Size中使用Size只会影响当前页面的大小。但我想将总结果的大小限制为1000,然后对其进行分页。

共有3个答案

萧德庸
2023-03-14

我知道这个问题问起来有点过时了,但是我被这个问题绊倒了,我很惊讶没有人能给出正确的答案。

Elasticsearch索引有一个名为max\u result\u window的索引模块。您可以在动态索引设置下的文档中找到它。

索引。max_result_window
大小搜索到此索引的最大值。默认值为10000。搜索请求从大小中获取与成比例的堆内存和时间,这限制了该内存。请参阅滚动或搜索,以了解提高此级别的更有效的替代方法。

因此,基本上不是限制大小(或这些的组合),而是将max_result_window设置为1000,ES将只返回每个请求最多1000次命中。

如果在单独的JSON文件中使用索引定义来创建索引,可以在yourindexname下设置该值。设置。指数最大结果窗口

我希望这能帮助那些仍在寻找解决方案的人们!

盛琪
2023-03-14

您可以将大小指定为参数

GET /_search?size=1000
{
    "query" : {
        //your query
    }
}
虞高雅
2023-03-14

使用From/Size返回所需数量的结果如何:

GET /_search
{
    "from" : 0, "size" : 1000,
    "query" : {
        //your query
    }
}
 类似资料:
  • 试图找出这个微不足道的例子的分数。我希望得到brenda eaton的文件,但我得到的是brenda fassie的最佳结果。

  • 创建新的。NET Framework 4.6.1控制台应用程序 为NEST 6.5.0和ElasticSearch.NET 6.5.0添加NuGet包 然后,我创建了一个新的弹性索引,其中包含具有“tags”属性的对象(类型为“mything”)。此标记是一组可能值中的随机逗号分隔的单词集。在测试中,我在索引中插入了100到5000项。我试了越来越少的可能的词在设置。

  • 我使用的是spring数据elasticsearch(4.0版)。现在,我需要将rest高级客户端的搜索结果转换为POJO对象。 我会使用杰克逊图书馆的ObjectMapper。我相信有更好的方法来做到这一点。 Spring data elasticsearch now(4.0版)使用MappingElasticsearchConverter。不幸的是,我不知道如何做到这一点-我没有看到任何相关文

  • 我正在用Hibernate Search 4.5.1和Spring 4.0.5版本构建一个应用程序。我正在尝试索引以下类: 我正在构建一个junit测试用例,看起来如下所示: 我还注意到在luke lucene上,一些索引词的长度最多为6个字符,例如,一首歌的艺术家是“后代”,而索引中存储的词是“the”和“offspr”。第一个可以,但第二个不应该是“后代”。为什么要截断名字?

  • 在我的弹性搜索数据库中插入6条记录后,我正在尝试一个弹性搜索示例。

  • 目前,我正在将弹性搜索命中映射到POJO,然后再次将其保存在列表中。 是否有一种方法可以直接将弹性结果映射到内容POJO列表,而无需从Search Hit迭代它。