मैं elasticsearch के लिए काफी नया हूं और केवल कुछ स्पष्टीकरण की आवश्यकता है: क्या हम खोज सर्वर से पूछताछ करते समय एक विश्लेषक को परिभाषित कर सकते हैं। मैं "पाठ" और "मैदान" क्वेरी के साथ यह कोशिश की और यह ठीक काम करता है:लोचदार खोज में पूछताछ करते समय विश्लेषक को परिभाषित करना
क्वेरी:
curl -XPOST http://localhost:9200/test/user/_search? -d '{ "query" : {
"text" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
परिणाम:
{"took":144,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":0.10848885,"hits":{"_index":"test","_type":"user","_id":"1","_score":0.10848885,
"_source" : {
"first_name": "Vaibhav",
"last_name":"saini",
"password":"pwd"
लेकिन जब मैं के साथ एक ही बात करने की कोशिश
क्वेरी::
curl -XPOST http://localhost:9200/test/user/_search? -d '{
"query" : { "term" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
अवधि/उपसर्ग/वाइल्डकार्ड क्वेरी मैं अपवाद 363,210
परिणाम:
{"error":"SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures
{[kws9J6tbQtWCMNKBm3Gpkw][test][4]: SearchParseException[[test][4]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}{[kws9J6tbQtWCMNKBm3Gpkw][test][1]: SearchParseException[[test][1]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}{[kws9J6tbQtWCMNKBm3Gpkw][test][2]: SearchParseException[[test][2]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}]","status":500}
तो यह है, जबकि प्रश्नों के कुछ प्रकार के लिए और दूसरों के लिए हम कर सकते हैं elasticsearch सर्वर क्वेरी करने जैसे हम analayzers को परिभाषित नहीं कर सकते? यदि नहीं, तो क्या मैं कुछ गलत कर रहा हूँ?
किसी भी मदद की बहुत सराहना की जाती है।
लोचदार खोज दस्तावेज़ कहता है कि शब्द क्वेरी उन दस्तावेजों से मेल खाती है जिनमें फ़ील्ड होते हैं जिनमें विश्लेषण होता है (विश्लेषण नहीं किया जाता है)। http://www.elasticsearch.org/guide/reference/query-dsl/term-query.html – vaibhav
धन्यवाद इमोटोव। लेकिन मुझे यहां कोई संदेह है, अगर यह मामला है, तो उपरोक्त उदाहरण में मुझे पूछताछ के दौरान परिणाम प्राप्त करना चाहिए, इस पर ध्यान दिए बिना कि मैं किस आवरण का उपयोग कर रहा हूं। पूर्व में: "first_name" फ़ील्ड में मेरे इंडेक्स डेटा में "वैभव" है, इस क्षेत्र के लिए उपयोग किए गए विश्लेषक भी कस्टम विश्लेषक हैं जो टोकननाइज़र को "कीवर्ड" के रूप में उपयोग करते हैं और "लोअरकेस" के रूप में फ़िल्टर करते हैं, ताकि मेरा डेटा "वैभव" के बजाय "वैभव" के रूप में अनुक्रमित किया जा सके। –
अब जब मैं इसे "वैभव" पर एक शब्द/उपसर्ग/वाइल्डकार्ड क्वेरी का उपयोग करके पूछता हूं तो मुझे परिणाम मिलता है, लेकिन जब मैं इसे "वैभव" पर पूछता हूं तो मुझे परिणाम नहीं मिलता है (शायद क्योंकि इसे "वैभव" के रूप में अनुक्रमित किया जाता है) । तो यहां मेरी आवश्यकता यह है कि मेरी क्वेरी केस असंवेदनशील होनी चाहिए। धन्यवाद –