有没有一种方法可以对字符串数组的嵌套字段进行部分或子字匹配?
我有一个包含文本数组的嵌套字段的索引文档,例如:
"entities":[
"0":{
"id":13,
"tags":[
"0":"some other class of tag may be present"
]
}
]
实体字段被索引为具有“标签”属性的“嵌套”类型。“tags”是“keyword”类型,具有文本类型的字段“lower_case”和不区分大小写的分析器。
使用包含完整值文本的嵌套query_string,我可以获得匹配:
{
"query":{
"nested":{
"query":{
"bool":{
"must":[
{
"query_string":{
"query":"some other class of tag may be present",
"fields":[
"entities.tags.lower_case"
]
}
}
]
}
},
"path":"entities"
}
}
}
但是当我尝试使用部分匹配(例如。“其他”或“类”)我没有得到匹配。在elasticsearch中,有没有一种方法可以对嵌套数组进行部分匹配?
编辑:在java中完成的Map:
XContentBuilder docProperties = XContentFactory.jsonBuilder();
docProperties
.startObject( "entities" )
.field("type", "nested")
.startObject("properties")
.startObject( "tags" )
.field("type", "keyword")
.startObject("fields")
.startObject( "lower_case" )
.field("type", "text")
.field("analyzer", "case_insensitive")
.endObject()
.endObject()
.endObject()
.endObject()
.endObject();
1条答案
按热度按时间hfwmuf9z1#
试试这个:
你不应该使用关键字tokenizer。