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

用于检索所有记录的Elasticsearch查询

韩峰
2023-03-14

我有几个文件夹中的文件,我想检查是否所有的文件在这个文件夹索引或没有。为此,对于文件夹中的每个文档名称,我想为在ES中索引的文档运行一个循环并进行比较。所以我想找回所有的文件。

对于同一个问题,除了在(ElasticSearch)嵌套查询中检索所有记录并在此处输入链接描述之外,几乎没有其他可能的重复项,但它们对我没有帮助,因为文档从那时起发生了更改。(当前文档中没有关于扫描的内容)

我尝试使用客户端。搜索

或者可以先获取索引的大小,然后将这个数字作为输入发送到大小以获取所有文档并循环通过吗?


共有2个答案

戴靖
2023-03-14

您可以轻松执行以下操作以获取索引中的所有记录:

var searchResponse = client.Search<T>(s => s
                                    .Index("IndexName")
                                    .Query(q => q.MatchAll()
                                           )
                                     );

var documents = searchResponse.Documents.Select(f => f.fieldName).ToList();
吕华彩
2023-03-14

下面是我解决问题的方法。希望这能有所帮助。(参考https://www.elastic.co/guide/en/elasticsearch/client/net-api/1.x/scroll.html、https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html#scroll-search-context)

List<string> indexedList = new List<string>();
var scanResults = client.Search<ClassName>(s => s
                .From(0)
                .Size(2000)
                .MatchAll()
                .Fields(f=>f.Field(fi=>fi.propertyName)) //I used field to get only the value I needed rather than getting the whole document
                .SearchType(Elasticsearch.Net.SearchType.Scan)
                .Scroll("5m")
            );

        var results = client.Scroll<ClassName>("10m", scanResults.ScrollId);
        while (results.Documents.Any())
        {
            foreach(var doc in results.Fields)
            {
                indexedList.Add(doc.Value<string>("propertyName"));
            }

            results = client.Scroll<ClassName>("10m", results.ScrollId);
        }
var response = client.Search<Document>(s => s
                         .From(fromNum)
                         .Size(PageSize)
                         .Query(q => q ....
 类似资料:
  • 问题内容: 文件夹中的文档很少,我想检查该文件夹中的所有文档是否都已编制索引。为此,对于该文件夹中的每个文档名称,我想循环遍历ES中索引的文档并进行比较。所以我想检索所有文档。 有喜欢同一个问题的其他几个可能的重复[检索AElasticSearch)NEST查询所有记录,并在此处输入链接的描述,但他们没有帮助我的文档已经从那个时候改变了。(有什么关于扫描当前文档中) 我尝试使用。但是根据文档,将检

  • 问题内容: 我在Elasticsearch中有一个小型数据库,出于测试目的,我想拉回所有记录。我正在尝试使用以下形式的网址… 有人可以给我您用来完成此操作的URL吗? 问题答案: 我认为支持lucene语法是这样的: 大小默认为10,因此您可能还需要获取10个以上的商品。(其中BIGNUMBER等于您认为大于数据集的数字) 但是,elasticsearch文档建议使用扫描搜索类型针对大型结果集。

  • 如何在不创建多个字符串的情况下获得所有列和记录?假设我在那个表中有10列,我不需要把它存储到一个对象中 谢了。

  • > 在我的视图中,我可以输出,如下所示: 我可以遍历,比如: 但是是否可以迭代(我知道只有一个-- ,请参见#2),并且对于每个迭代他们的? 我想我的模特关系中有什么不对劲的地方。我还尝试用在Artist.php中定义关系(我认为说“每个艺术家都有许多乐器”更有意义,但这给了我一个错误,因为它需要一个名为的表,而且它还试图检索该表中不存在的列(比如)。

  • 问题内容: 如何记录django应用程序执行的所有SQL查询? 我想记录所有内容,包括来自管理站点的SQL。我看到了这个问题和一个常见问题解答,但是我仍然不知道应该把它放在哪里 将所有内容记录到一个文件? 所以我的问题是-我应该怎么做才能拥有一个记录所有SQL语句的文件(例如all-sql.log)? 问题答案: 也许看看https://github.com/django-debug-toolba

  • 问题内容: 我将Firebase,后端即服务用于我的网站应用程序,并通过AngularJS进行编程。 我想使用数据库查询来获取记录,例如: 我在Firebase服务器中具有电视连续剧数组 JSON CODE : 我现在使用的代码来解决这个问题: 我想在不使用和的情况下解决这个问题。我应该怎么做? 就像这样: 问题答案: 我有一些建议可能会帮助您: 查阅Firebase查询文档。特别, 您可以结合使

  • 问题内容: 假设我有一张桌子,我用symfony按字母顺序排序。每个项目都有一个相当随机的ID,我想在某个ID之后检索所有项目。例如: 假设我想检索和。我事先知道ID 3,并且想要它之后的所有内容。 我应该如何构造语句来实现这一目标? 我不在乎答案是否使用Propel,MySQL,SQL或其他。只要有可能。 问题答案: (至少与Postgres和Just Aguy的SQL Fiddle一起运行)