10
我想搜索我的數據庫,並能夠使用大寫/小寫過濾條件,但我注意到,而query
的應用分析器,我無法弄清楚如何應用小寫分析器在過濾的搜索。這裏的查詢:Elasticsearch小寫過濾器搜索
{
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{
"term": {
"language": "mandarin" // Returns a doc
}
},
{
"term": {
"language": "Italian" // Does NOT return a doc, but will if lowercased
}
}
]
}
}
}
}
}
我有一個類型languages
,我已經使用小寫:
"analyzer": {
"lower_keyword": {
"type": "custom",
"tokenizer": "keyword",
"filter": "lowercase"
}
}
和相應的映射:
"mappings": {
"languages": {
"_id": {
"path": "languageID"
},
"properties": {
"languageID": {
"type": "integer"
},
"language": {
"type": "string",
"analyzer": "lower_keyword"
},
"native": {
"type": "string",
"analyzer": "keyword"
},
"meta": {
"type": "nested"
},
"language_suggest": {
"type": "completion"
}
}
}
}
所以,如果我想壽長期被小寫我會改變該標記者以一個小寫的一個重新索引一切? – Maruf
不,它由於小寫字母過濾器而在索引期間已經小寫了。問題是你需要使用一個查詢類型,也將分析 - 條款過濾器不。 –
如果您只是降低了輸入的分辨率,您會看到更好的性能,因此您可以繼續使用使用查詢過濾器的術語過濾器嗎? – odyth