【发布时间】:2021-09-09 01:05:07
【问题描述】:
我正在使用 ES 7.14/Kibana 7.10,我必须搜索相邻的单词(任何顺序),因此我使用这个查询:
{
"query":{
"bool":{
"must":[
{
"query_string":{
"query":"*antonio* *banderas*",
"fields":[
"text"
],
"default_operator":"and",
}
}]
}
}
}
这适用于 text 普通字段。现在,我有一个嵌套字段metadata,假设映射是
{
"mappings:": {
"properties": {
"text": {
"type": "text"
},
"metadata": {
"type": "nested",
"properties": {
"text": {
"type": "text"
}
}
}
}
}
}
并且我想以相同的方式搜索该嵌套字段(相邻词搜索),因此假设可以以 this 方式为 query_string 编写嵌套查询
{
"query": {
"query_string": {
"query": "metadata.text:*antonio* *banderas*"
}
}
}
如何使用default_operator=and 等使这种方法适应以前的方法?如果我这样做了
{
"query": {
"query_string": {
"query": "metadata.text:*antonio* *banderas*",
"default_operator": "and"
}
}
}
我没有得到任何结果(但也没有任何错误)。
一个类似的问题,但与匹配多个嵌套字段的相邻单词有关的是here。
【问题讨论】:
-
对于嵌套字段,您需要使用嵌套查询,对于普通查询,它将被视为纯文本,即这些不会被视为单独的文档
标签: elasticsearch elasticsearch-7