当前位置: 首页 > 面试题库 >

在Elasticsearch中搜索多种类型

杜俊楚
2023-03-14
问题内容

我有一个用例,其中在同一索引中有两种不同的类型。两种类型都有不同的结构和映射。

我需要使用不同的查询DSL同时查询这两种类型。

如何构建查询DSL以同时查询多个相同索引类型。

我在https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-index-
multi-
type.html上

查看了Elasticsearch指南,但此处没有适当的解释。根据此即使我在请求中设置了两种不同的类型:

/index/type1,type2/_search

我将不得不发送相同的查询DSL。


问题答案:

您需要使用多重搜索API和_msearch端点

curl -XGET localhost:9200/index/_msearch -d '
{"type": "type1"}
{"query" : {"match_all" : {}}, "from" : 0, "size" : 10}
{"type": "type2"}
{"query" : {"match_all" : {}}, "from" : 0, "size" : 10}
'

注意:请确保每行用换行符分隔(包括最后一行)

您将以与请求相同的顺序获得两个响应



 类似资料:
  • 我们有一个需要跨多个索引查询的要求,如下所示 我们使用的是ElasticSearch 5.1.1. http://localhost:9200/index1,index2,index3/type1,type2/_search 查询: 但是,我们可能无法预先知道该索引是否存在,如果上述任何一个索引都不存在,我们将得到以下错误。 一个明显的方法是检查索引是否已经存在,但我希望避免额外的调用。 注意:至

  • 我在一个数据库中有很多项,有很多列。我需要在其中的两个列中搜索以获得一个数据集。第一列将把具有该代码的任何行分组在一起。第二列调用要添加的特定行,因为它缺少我要查找的的列表。 后端C#为我设置了json,如下所示,但它什么也不返回。 我得到和空的结果集。如果我删除中的任何一个,我就会得到我所期望的结果。所以,我只需要将这些术语合并到一个搜索中。 我在这里浏览了大量文档:https://www.el

  • 问题内容: 我正在使用最新版本的elasticsearch-php以及最新版本的MongoDB和ElasticSearch。 我需要对可以包含一个或多个值的多个字段进行搜索。例: country_code应为NL,BE或DE,并且类别应包含AA01,BB01,CC02或ZZ11 我以为我会按照以下方式解决它(PHP): 但是结果甚至还不能接近我期望返回的数据。 有时 $ countries 和/或

  • 我正在使用Nest连接到ElasticSearch并执行一些查询。到目前为止,在给定一个通配符查询的情况下,我能够得到我想要的结果,如下所示: 但是现在我需要为某个用例的查询添加附加条件。 我需要的不仅是通过查询,还需要其他两个匹配的字段: 搜索术语"*" field 1="一些字符串" field="一些指南" 我确信在弹性搜索中一定有办法做到这一点(使用Nest),但我还没有找到它。 我知道我

  • 问题内容: 我正在使用elasticsearch从json文件过滤和搜索,并且我是这项技术的新手。所以我有点困惑如何在elasticsearch中写像查询一样的东西。 这是mysql查询。如何在Elasticsearch中编写此查询?我正在使用Elasticsearch 0.90.7版。 问题答案: 如果可能的话,我强烈建议您更新ElasticSearch版本,自0.9.x版本以来发生了重大变化。

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