我很惊讶fuzzy_like_this
似乎没有确定索引和我正在搜索的类型。相反,我从索引中的所有类型获得结果。我正在使用fuzzy_like_this
针对某个类型进行搜索,特别是/places/places_city/_search
。不幸的是,它似乎返回了索引中所有类型的结果,这似乎是一个错误。
我一直在尝试使用places_city
为我的字段加前缀,但这不起作用。
我的代码如下:
{
"constant_score": { // here i am using this because to remove tf/idf factors from my scoring
boost: .001,
"query": {
"fuzzy_like_this" : {
"fields" : ["places_city.city"],
// "fields" : ['places_city.city'],
"like_text" : "bangaloremn",
"prefix_length": 3,
"fuzziness": 2
}
}
}
}
这里我将places_city作为类型名称和城市作为其字段我在普通查询中使用此typename.field约定,它对以下查询工作得非常好,但我不知道为什么它不像模糊的那样工作。
"must": [
{
"constant_score": { // here i am using this because to remove tf/idf factors from my scoring
boost: 1.04,
"query": {
query_string: {
query: location_search,
fields: ['places_city.city'],
// boost: 1.04
}
}
}
}
],
这里ES引用places_city作为类型名称,城市作为其字段,但它没有在上面的代码中执行此操作。