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

在ElasticSearch搜索查询中获取文档的所有字段

谭凯
2023-03-14

如何获取搜索查询匹配的文档中的所有字段?关于<code>字段</code>的ES文档指出,使用<code>*</code>,可以获得所有字段:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html

有了这个文档和这个查询,我得到了结果,但没有返回任何字段:

放置文档:

curl -XPUT http://localhost:9200/idx/t/doc1 -d '{
  "f": "value"
}'

搜索它:

curl -XPOST http://localhost:9200/idx/_search?pretty -d '{
  "fields": "*",
  "query": { "term" : { "f" : "value" }}
}'

我还尝试了[“*”],但结果是相同的,只返回默认字段(_id_type>)。响应的命中部分如下所示:

"hits" : {
    "total" : 1,
    "max_score" : 0.30685282,
    "hits" : [ {
      "_index" : "idx",
      "_type" : "t",
      "_id" : "doc1",
      "_score" : 0.30685282
    } ]
  }

共有2个答案

章哲茂
2023-03-14

我也面临着这个问题。我发现,如果我只是搜索文本关键字字段,一切都很好,希望这可以帮助你。

吴镜
2023-03-14

医生实际上说:

"*可用于从文档中加载所有存储的字段。"

核心类型文档表示,存储字段的默认值为“false”。

由于默认情况下,ElasticSearch 将源文档的所有字段都存储在特殊_source字段中,因此当类型定义中禁用_source字段时,此选项主要有用。默认值为假。

如果您没有在搜索中指定“字段”,则可以查看_source中的内容。

因此,如果您想将其作为一个字段返回,请更改您的映射来存储该字段。

 类似资料:
  • 我是Elasticsearch的新手,我面临一个问题。我的任务是搜索一组文档。例如,我有这样结构的数据: 但是困难的是,我如何获取所有带有project_id=abc的文档,然后通过与关键字“测试”匹配的任何其他字段(代码、名称、状态)搜索它们(例如)。我如何在Elasticsearch查询中做到这一点,请帮助我! 谢谢

  • 问题内容: 我们可以像这样在特定document.field中搜索所有单词: 这将搜索词,并在该领域,从而只返回这些文档将在所有这些词场。 但是我想做的却有些不同。 我想进行查找,以便如果该文档字段的所有单词都出现在我的搜索查询中,则它将返回该文档。 例如 假设Elasticsearch数据库中有一个文档 现在,如果我搜索“ a”,它将返回该文档,因为document.title中的所有单词确实存

  • 问题内容: 我想从Elasticsearch集群中的完全匹配查询中获取所有结果。我不在乎结果是否是最新的,我不在乎订单,我只想稳定地浏览所有结果,然后从头开始。滚动和扫描最适合此操作,似乎不需要我拍摄快照就很受欢迎。我将要处理数以千万计的文档。 问题答案: 某种程度上与Elasticsearch查询重复,以返回所有记录。但是我们可以添加更多细节来解决开销问题。(即,“拍摄不需要的快照似乎有点受欢迎

  • 我需要在我的应用程序中添加搜索栏。搜索将按名和姓进行搜索。我不知道如何编写elastcsearch查询。名字和姓氏是两个分开的字段。我是个新手。 例:名:约翰,姓:约书亚 搜索栏字符串为上层结果:约翰·乔·约翰·乔·约翰·乔·乔·约翰·约书亚·约翰·约书亚·乔...

  • 问题内容: 我想知道为什么搜索特定术语会返回索引的所有文档,而不返回包含所请求术语的文档。 这是索引以及我的设置方法:(使用elasticsearch头插件浏览器界面) 然后我添加了一些文档: 因此,现在触发“ plaat”搜索时,人们会希望搜索会返回包含“ plaatstaal”的文档。 但是为我节省了更多的搜索,elasticsearch会恢复所有文档的大小,无论其文本内容如何。我在这里想念什

  • 我有一个endpoint,我正在将它代理到ElasticSearchAPI中,以进行简单的用户搜索。 有关这些参数的一些详细信息如下 所有参数都是可选的 昵称可以作为全文搜索进行搜索(即'myUser'将返回'myUsername') 电子邮件必须完全匹配 名称可以搜索为每个令牌的全文搜索(即'john'将返回'John Smith') ElasticSearch调用应将参数集体视为AND'd。