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

ElasticSearch:如何在一个或多个索引的所有类型的任何字段中搜索值?

全飞扬
2023-03-14
问题内容

我有两个索引my_index_1my_index_2。在这些索引中,我具有以下文档类型:

my_index_1

  • 组织机构
  • 角色
  • 技能

my_index_2

  • 产品展示
  • 服务
  • 专利
  • 商标
  • 服务标记

每种类型都有不同的字段。

我的问题: 在任何类型的任何字段中,跨一个或什至两个索引查询字符串“ abc”的最佳方法是什么?

我没有在文档中找到任何有助于这种搜索的内容。是否有可能看起来像:

$ curl -XPOST 'localhost:9200/_search?pretty' -d '
{
  "query": { "match": { *: "abc" } }
}'

预先感谢您提供的任何帮助。


问题答案:

无论是query_string查询或match查询将是你在找什么。

query_string如果未指定,将使用特殊_all字段default_field,因此效果很好。

curl -XPOST 'localhost:9200/_search?pretty' -d '{
  "query": { "query_string": { "query": "abc" } }
}'

并且,match您也可以指定_all

curl -XPOST 'localhost:9200/_search?pretty' -d '{
  "query": { "match": { "_all": "abc" } }
}'

请注意,query_string您可能会使用通配符,而不能使用通配符match

更新:

由于该_all字段在6.0中已弃用,因此解决方案是实现自定义所有字段



 类似资料:
  • 按照文档的规范示例,假设我想在elasticsearch中存储推文,但我想指定一个处理两个以上字段的endpoint,例如。 在本例中,我想在推特上建立索引,但也要在推特句柄和月份上建立索引,包括推特类型和id。 这是可能的,还是唯一可能的映射类似于他们提供的东西,一个和一个,例如?

  • 本文向大家介绍如何在MongoDB中为多个字段建立索引的“或”索引?,包括了如何在MongoDB中为多个字段建立索引的“或”索引?的使用技巧和注意事项,需要的朋友参考一下 要为多个字段建立索引,请使用sureIndex()作为组合。使用sureIndex(),我们可以创建索引,甚至可以传递多个字段。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

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

  • 问题内容: 我第一次使用Postgresql,并且试图在我的网站中创建一个搜索引擎。我有这张桌子: 然后我为表的每个字段创建了一个索引(这是正确的方法吗?或者我可以为所有字段创建一个索引?): 现在,如果我想在每个索引中搜索一个单词,SQL查询是什么? 我尝试了这个,它的工作原理: 是否存在更好的方法来做到这一点?我可以搜索多个吗?我的一个朋友提出了一个解决方案,但这是针对MySQL数据库的: P

  • 问题内容: 我有三个食物类型索引:“意大利”,“西班牙”,“美国”。当用户搜索“奶酪”时,“意大利”文档似乎出现在顶部。如果我偏爱说“西班牙语”,是否可以“增强”结果?(我仍然应该获得意大利语的结果,但是基于索引类型“ Spanish”的一些数值提升值,结果中返回的文档的顺序将优先使用“ Spanish”索引。在用户输入的lucene和/或ES查询? 问题答案: 添加带有字词查询或字段(或两者都有

  • 问题内容: 我想在我存储在Elasticsearch 7.3中的文档中搜索单词 我想要在以前版本的Elasticsearch上工作的示例是: 但是此查询不适用于Elasticsearch 7+,因为已删除。现在该字段消失了,我该如何编写查询以完成相同的任务? 注意:我已经阅读了将所有字段复制到自定义字段中的建议,但是这要求显式地写出每个字段以包括在all_fields字段中。由于我有很多小字段,因