我有一個值列表,我希望在product_code
字段中包含這些值中的任意值的所有文檔。匹配具有多個值的查詢
我想這一點,但即使它不給一個錯誤,它只是給我的文件之一:
"query": {
"match": {
"product_code": {
"query": ["ABC 4", "ABC 5"]
}
}
}
所以基本上,我在尋找terms
過濾器的功能,但與分析。
我當然可以這樣做:
"bool": {
"should": [
{
"query": {
"match": {
"product_code": "ABC 4"
}
}
},
{
"query": {
"match": {
"product_code": "ABC 5"
}
}
}
]
}
不過這樣會相當冗長的長列表。
product_code
這樣定義:
"product_code": {
"type": "string",
"analyzer": "product_code",
}
與PRODUCT_CODE分析:
"product_code": {
"type": "custom",
"filter": [
"lowercase",
"trim"
],
"tokenizer": "keyword"
}
這看起來不錯...除了其他引號之外,還有什麼特殊字符可以在引號內跳過嗎?或者只是把沒有引號,但逃脫一切特別包括空間? – AndreKR 2014-10-01 09:17:58
您需要轉義Lucene在此列出的特殊字符:http://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Escaping特殊字符 – 2014-10-01 10:25:37