विशेष रूप से, मैं सबकुछ इंडेक्स करना चाहता हूं (उदा। कौन) बिना स्टॉप शब्द सूची के। लोचदार खोज लचीला पर्याप्त और बदलने के लिए काफी आसान है?क्या मैं अपनी खुद की स्टॉप वर्ड सूची का उपयोग करने के लिए लोचदार खोज को कस्टमाइज़ कर सकता हूं?
उत्तर
हां, आप इसे ElasticSearch की आंतरिक कॉन्फ़िगरेशन YAML फ़ाइल का उपयोग करके कर सकते हैं।
विश्लेषक सेटिंग्स को बदलने के लिए config docs देखें।
डिफ़ॉल्ट रूप से, विश्लेषक लोचदार खोज का उपयोग 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_
आप डिफ़ॉल्ट विश्लेषक विश्व स्तर पर ओवरराइड कर सकते हैं और अपने elasticsearch.yml में ये पंक्तियां जोड़कर stopword फिल्टर बंद कर दें:
index.analysis.analyzer.default:
type: custom
tokenizer: standard
filter: standard, lowercase
यह मानक tokenizer और दो के साथ एक कस्टम विश्लेषक पैदा करेगा फिल्टर: मानक और लोअरकेस। इस प्रकार आपका कस्टम विश्लेषक मानक विश्लेषक के समान होगा लेकिन यह स्टॉपवर्ड फ़िल्टर का उपयोग नहीं करेगा। चूंकि इसे "डिफ़ॉल्ट" नाम दिया गया है, इसलिए लोचदार खोज इसे हर जगह उपयोग करेगा जहां विश्लेषक स्पष्ट रूप से सेट नहीं होता है।
निश्चित रूप से आप कर सकते हैं। स्टॉपवर्ड्स के stopwords_path कीड़े का प्रयोग करें। अधिक जानकारी के लिए http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html
यह वास्तव में सबसे अच्छा जवाब है जो मैंने इस प्रश्न को देखा, क्योंकि यह स्टॉपवर्ड फ़िल्टर को हटा देता है और इस प्रकार कोड को अधिक कॉम्पैक्ट बनाता है। –