मैं अपने डेटाबेस को खोजने की कोशिश कर रहा हूं और ऊपरी/निचले केस फ़िल्टर शर्तों का उपयोग करने में सक्षम हूं लेकिन मैंने देखा है कि query
के लागू विश्लेषक हैं, मैं यह नहीं समझ सकता कि लोअरकेस विश्लेषक कैसे लागू करें एक फ़िल्टर खोज पर।लोचदार खोज लोअरकेस फ़िल्टर खोज
{
"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"
}
}
}
}
तो अगर मैं अवधि यद्यपि चाहता था लोवरकेस में रखना मैं एक लोअरकेस एक के लिए tokenizer बदल सकते हैं और सब कुछ पुन: अनुक्रमणिका हैं? – Maruf
नहीं, यह लोअरकेस फ़िल्टर के कारण इंडेक्सिंग के दौरान पहले ही कम हो चुका है। समस्या यह है कि आपको एक क्वेरी प्रकार का उपयोग करने की आवश्यकता है जो विश्लेषण भी करेगा - टर्म फ़िल्टर नहीं। –
यदि आप अभी अपना इनपुट कम कर चुके हैं तो बेहतर प्रदर्शन देखेंगे ताकि आप क्वेरी फ़िल्टर का उपयोग कर टर्म फ़िल्टर का उपयोग जारी रख सकें? – odyth