我有問題需要設置正確的篩選器。我的查詢是這樣的:無法爲我的彈性搜索查詢創建正確的篩選器
{
"query" : {
"bool" : {
"must" : [
{
"query_string" : {
"query" : "example~",
"analyzer" : "standard",
"default_operator" : "OR",
"fuzziness" : "AUTO"
}
},
{
"term" : {
"client" : {
"value" : "MyClient",
"boost" : 1
}
}
},
{
"range" : {
"dateCreate" : {
"gte" : "2016-01-01T00:00:00+0200",
"lte" : "2016-12-31T23:59:59+0200"
}
}
},
{
"match" : {
"lang" : "php OR java"
}
}
]
}
},
"size" : 10,
"from" : 0,
"sort" : [
{
"_score" : {
"order" : "desc"
}
}
]
}
的「郎」字段類型的文本。
我的期望是使用給定的查詢字符串獲取所有文檔,然後我只想選擇在其lang字段中具有「PHP」或「Java」的文檔。 lang字段只包含「PHP」或「Java」,但從來沒有兩個字符串,所以我想使用完全匹配,但我無法得到它的工作。
結果實際上是兩個文檔的列表,但total_count = 2510。
一個不符合我的文檔:
{
"id" : "d3295f18-a033-4934-941a-21a8bef901e8",
"client" : "MyClient",
"lang" : "PHP",
"author" : null,
"dateCreate" : "2016-03-31T00:00:00+0200",
"title" : "Sample document",
"content" : "This is a short text describing the deocument."
}
如果刪除了'或'會發生什麼? – Val
完全一樣:我得到兩個結果,但必須有大約2,000個文件才能列出。 – altralaser
您可以顯示一個應該匹配但不包含文檔的示例文檔嗎? – Val