如何从搜索结果中获取所有值

Posted

技术标签:

【中文标题】如何从搜索结果中获取所有值【英文标题】:How to get all the values from an search result 【发布时间】:2011-06-26 19:27:38 【问题描述】:

我是弹性搜索的新手。有什么方法可以获取搜索关键字的所有搜索结果?弹性搜索限制为 10 或者我们可以设置大小但我们需要获取大小?

【问题讨论】:

我会推荐使用滚动搜索来获取所有记录(如分页)。 elasticsearch.org/guide/en/elasticsearch/reference/current/… 【参考方案1】:

是的,默认搜索结果数为 10。

您需要在查询时set the size parameter。

我不认为你会说“所有结果”,但必须始终有大小限制。

【讨论】:

@raagavan:什么总大小? @skaffman 看看我是否搜索关键字 example 如果它在 200 个文档中,我需要显示 200 个结果.. 有什么办法可以像 solr http://blog.jteam.nl/2009/10/20/result-grouping-field-collapsing-with-solr/ @raagavan 没有。但你可以看看孩子父母的东西:elasticsearch.org/guide/reference/query-dsl/… @raagavan 如果你需要所有文件(你为什么要??)考虑扫描搜索:elasticsearch.org/blog/2011/03/24/new-search-types.html【参考方案2】:

如果您使用 JAVA API,您可以简单地从 SearchResponse 中获取总命中数

SearchRequestBuilder srb = ..
SearchResponse sr = srb.execute().actionGet();
long totalHits = sr.getHits().getTotalHits();

【讨论】:

【参考方案3】:

您可以使用一些代码分几步完成此操作

    修复一个大小,比如 1000 并获取所有 1000 条记录。 从hits.total 中识别大小是否小于 1000。(如果小,则您获得了所有记录 :)) 否则,请使用 from and size 在 from 和 total 中提供 1001 作为先前查询的大小以获得完整结果。

【讨论】:

以上是关于如何从搜索结果中获取所有值的主要内容,如果未能解决你的问题,请参考以下文章

如何从所有文本字段中获取所有值

如何从搜索栏中获取输入值

比较 php MySQL 查询结果数组以从其中一个数组中获取关联值

如何从谷歌地方详细信息结果中获取纬度和经度值

从结果中获取值?

如何从存储在变量中的 jsondecode() 响应中搜索和获取值? [复制]