我正在尝试对_all字段执行通配符查询。示例查询可以是:
GET index/type/_search
{
"from" : 0,
"size" : 1000,
"query" : {
"bool" : {
"must" : {
"wildcard" : {
"_all" : "*tito*"
}
}
}
}
}
问题是,要使用通配符查询,_all字段需要not_analyzed,否则查询将无法正常工作。有关详细信息,请参阅ES documentation。
我尝试使用此请求设置mappings over the _all field:
PUT index
{
"mappings": {
"type": {
"_all" : {
"enabled" : true,
"index_analyzer": "not_analyzed",
"search_analyzer": "not_analyzed"
},
"_timestamp": {
"enabled": "true"
},
"properties": {
"someProp": {
"type": "date"
}
}
}
}
}
但是我收到错误分析[not_analyzed]找不到字段[_all] 。
我想知道我做错了什么,以及是否还有其他(更好)方法来执行此类查询。
感谢.-
答案 0 :(得分:1)
答案 1 :(得分:1)
很可能你想提供选择
{
placeid: Number,
placename: String,
placelongitude: Number,
placelatitude: Number,
cityname: String,
countryname: String
}
字符串字段的索引属性,_all是字符串字段,用于确定是否应分析该字段。
"index": "not_analyzed"
用于确定应将哪个分析器用于用户输入的查询,如果将index属性设置为已分析,则该分析器有效。
"search_analyzer"
将设置为确定哪个分析器应该用于文档,如果将index属性设置为已分析,则再次有效。