ElasticSearch仅查询嵌套(如果存在)

我有此搜索查询,用于在根标题和描述中找到查询搜索词“ red dog”,并且还匹配嵌套的注释文档。

GET /_all/video/_search

{

"query":{

"bool":{

"should":[

{

"multi_match":{

"query":"red dog",

"fields":[

"Title",

"Description"

],

"type": "cross_fields",

"operator":"and"

}

},

{

"nested":{

"path":"Comments",

"query":{

"multi_match":{

"query":"red dog",

"fields":[

"Comments.Description",

"Comments.Description.folded"

],

"type": "cross_fields",

"operator":"and"

}

}

}

}

]

}

}

}

对我来说不幸的是,当我将注释保留到ElasticSearch时,注释有时为空,是否可以执行某种“如果文档存在则包含”条件?

我仍然遇到相同的错误

[nested] failed to find nested object under path [Comments]

当我尝试使用存在查询时

    GET /_all/video/_search

{

"query":{

"bool":{

"should":[

{

"multi_match":{

"query":"lisa",

"fields":[

"Title",

"Description"

],

"type":"cross_fields",

"operator":"and"

}

},

{

"nested":{

"path":"Comments",

"query":{

"filtered":{

"query":{

"match_all":{}

},

"filter":{

"exists":{

"field":"Comments.Description"

}

}

}

}

}

}

]

}

}

}

我对所有事物的映射

{

"en":{

"mappings":{

"video":{

"properties":{

"Comments":{

"type":"nested",

"properties":{

"Description":{

"type":"string",

"analyzer":"english",

"fields":{

"folded":{

"type":"string",

"analyzer":"folding"

}

}

}

}

},

"Description":{

"type":"string",

"analyzer":"english",

"fields":{

"folded":{

"type":"string",

"analyzer":"folding"

}

}

},

"Title":{

"type":"string",

"analyzer":"english",

"fields":{

"folded":{

"type":"string",

"analyzer":"folding"

}

}

}

}

}

}

}

}

而我的设置

{

"settings": {

"analysis": {

"analyzer": {

"folding": {

"tokenizer": "standard",

"filter": [

"lowercase",

"asciifolding"

]

}

}

}

}

}

回答:

事实证明,我有一个很棒的索引,没有针对我的类型的映射。我删除了插件,可以在所有索引中进行搜索。

以上是 ElasticSearch仅查询嵌套(如果存在) 的全部内容, 来源链接: utcz.com/qa/408624.html

回到顶部