0
我有一個類型的定義如下 「taggeable」:彈性搜索更多類似這樣的查詢與過濾器將結果
{
"mappings": {
"taggeable" : {
"_all" : {"enabled" : false},
"properties" : {
"category" : {
"type" : "string"
},
"tags" : {
"type" : "string",
"term_vector" : "yes"
}
}
}
}
}
我也有這個5號文件:
Document1 (tags: "t1 t2", category: "cat1")
Document2 (tags: "t1" , category: "cat1")
Document3 (tags: "t1 t3", category: "cat1")
Document4 (tags: "t4" , category: "cat1")
Document5 (tags: "t4" , category: "cat2")
以下查詢:
{
"query": {
"more_like_this" : {
"fields" : ["tags"],
"like" : ["t1", "t2"],
"min_term_freq" : 1,
"min_doc_freq": 1
}
}
}
將返回:
Document1 (tags: "t1 t2", category: "cat1")
Document2 ("t1", category: "cat1")
Document3 ("t1 t3", category: "cat1")
這是正確的,但此查詢:
{
"query": {
"filtered": {
"query": {
"more_like_this" : {
"fields" : ["tags"],
"like" : ["t1", "t2"],
"min_term_freq" : 1,
"min_doc_freq": 1
},
"filter": {
"bool": {
"must": [
{"match": { "category": "cat1"}}
]
}
}
}
} }
是返回:
Document1 (tags: "t1 t2", category: "cat1")
Document4 (tags: "t4" , category: "cat1")
Document2 (tags: "t1" , category: "cat1")
Document3 (tags: "t1 t3", category: "cat1")
這,Document4現在是也被檢索出來並且它的分數與Documen1相似,這是一個完美的匹配,即使Document4沒有包含在「t1 t2」中的任何單詞。
任何人都知道發生了什麼?我使用的是彈性搜尋提前
我希望查詢失敗,如果有一個額外的孩子或其他錯誤。謝謝。 – italktothewind