2011-02-07 10 views
10

विशेष रूप से, मैं सबकुछ इंडेक्स करना चाहता हूं (उदा। कौन) बिना स्टॉप शब्द सूची के। लोचदार खोज लचीला पर्याप्त और बदलने के लिए काफी आसान है?क्या मैं अपनी खुद की स्टॉप वर्ड सूची का उपयोग करने के लिए लोचदार खोज को कस्टमाइज़ कर सकता हूं?

उत्तर

4

हां, आप इसे ElasticSearch की आंतरिक कॉन्फ़िगरेशन YAML फ़ाइल का उपयोग करके कर सकते हैं।

विश्लेषक सेटिंग्स को बदलने के लिए config docs देखें।

16

डिफ़ॉल्ट रूप से, विश्लेषक लोचदार खोज का उपयोग standard analyzer डिफ़ॉल्ट ल्यूसीन अंग्रेजी स्टॉपवर्ड के साथ होता है। मैंने elasticsearch.yml फ़ाइल में निम्नलिखित जोड़कर एक ही विश्लेषक का उपयोग करने के लिए elasticsearch को कॉन्फ़िगर किया है।

# Index Settings 
index: 
    analysis: 
    analyzer: 
     # set standard analyzer with no stop words as the default for both indexing and searching 
     default: 
     type: standard 
     stopwords: _none_ 
4

आप डिफ़ॉल्ट विश्लेषक विश्व स्तर पर ओवरराइड कर सकते हैं और अपने elasticsearch.yml में ये पंक्तियां जोड़कर stopword फिल्टर बंद कर दें:

index.analysis.analyzer.default: 
    type: custom 
    tokenizer: standard 
    filter: standard, lowercase 

यह मानक tokenizer और दो के साथ एक कस्टम विश्लेषक पैदा करेगा फिल्टर: मानक और लोअरकेस। इस प्रकार आपका कस्टम विश्लेषक मानक विश्लेषक के समान होगा लेकिन यह स्टॉपवर्ड फ़िल्टर का उपयोग नहीं करेगा। चूंकि इसे "डिफ़ॉल्ट" नाम दिया गया है, इसलिए लोचदार खोज इसे हर जगह उपयोग करेगा जहां विश्लेषक स्पष्ट रूप से सेट नहीं होता है।

+1

यह वास्तव में सबसे अच्छा जवाब है जो मैंने इस प्रश्न को देखा, क्योंकि यह स्टॉपवर्ड फ़िल्टर को हटा देता है और इस प्रकार कोड को अधिक कॉम्पैक्ट बनाता है। –

संबंधित मुद्दे

 संबंधित मुद्दे