我有两个索引my_index_1
和my_index_2
。在这些索引中,我有以下文档类型:my_index_1
:
- 人员
- 组织机构
- 角色
- 技能
my_index_2
:
- 产品
- 服务
- 专利
- 商标
- 服务标记
每种类型都有不同的字段。
**我的问题:**在任何类型的任何字段中,跨任何一个索引甚至两个索引查询字符串“abc”的最佳方法是什么?
我在文档中没有看到任何有助于此类搜索的内容。是否有类似以下内容:
$ curl -XPOST 'localhost:9200/_search?pretty' -d '
{
"query": { "match": { *: "abc" } }
}'
提前感谢你能提供的任何帮助。
6条答案
按热度按时间yv5phkfx1#
query_string
query或match
query将是您正在寻找的。如果在
default_field
中没有指定,query_string
将使用特殊的_all
field,这样会很好地工作。对于
match
,您也可以指定_all
。请注意,对于
query_string
,您可以使用通配符,而对于match
,则不能使用通配符更新日期:
由于6.0中不赞成使用
_all
字段,因此现在的解决方案是实现自定义all字段c0vxltue2#
multi match query字段是现已弃用的_all字段的替代字段
请注意,支持在字段名称中使用通配符,也支持使用^#语法提高字段的重要性
从版本7.3开始:如果未提供任何字段,则multi_match查询会预设为index.query.default_field索引设定,而索引设定又会预设为 *. *,会撷取对映中符合字词查询条件的所有字段,并筛选中继数据字段。然后会组合所有撷取的字段以建立查询。
另一种替代方案是Query string query
default_field(可选,字符串)查询字符串中未提供字段时要搜索的默认字段。
预设为index.query.default_field索引设定,其预设值为 *。
1hdlvixo3#
我认为可以使用_all来实现此目的
试试这个
您也可以使用
query_string
,因为它会依预设搜寻_all
。oewdyzsn4#
尝试以下操作以获取所有索引和所有字段的结果:
qcbq4gxm5#
我使用的是8.3版的Elasticsearch,这些都不适合我。
工作了我:
或简短的调查文档
puruo6ea6#