我在弹性搜索中使用同义词,现在我的映射在下面给出
"settings": {
"index": {
"analysis": {
"analyzer": {
"synonym": {
"tokenizer": "whitespace",
"filter": ["synonym"]
}
},
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms.txt"
}
}
}
}
},
mappings : {
places_city: {
properties:{
city : {"type" : "string", "index": "analyzed", "analyzer": "synonym"},
}
}
}
现在我的问题是,如果我在places_city.city上使用过滤器,我的意思是“城市”#39;字段比没有问题一切正常,但问题是每当我尝试使用查询或通配符查询' city'字段ES没有返回任何东西,所以我做错了什么我认为问题在于我的映射,所以如果有人知道这个,请帮助我想用我的城市'字段作为过滤器和通配符查询。
更新 - 我正在使用的查询在下面给出
bool: {
"disable_coord": true,
"must": [
{
"constant_score": { // here i am using this because to remove tf/idf factors from my scoring
boost: 1.02,
"query": {
query_string: {
query: location_search,
fields: ['places_city.city'],
// boost: 4
}
}
}
}
],
"should": [
{
"constant_score": {
boost: 10,
"query": {
query_string: {
query: curr_city,
fields: ['places_city.city'],
// boost: 8
}
}
}
}
]
}
}