elasticsearch - Elastic Search Relevance for query based on most matches -


मेरे पास निम्न मानचित्रण है

  posts ": {" properties ": {" prop1 "" प्रकार ":" नेस्टेड "," प्रॉपर्टीज ": {" आइटम 1 ": {" प्रकार ":" स्ट्रिंग "," अनुक्रमणिका ":" नहीं_अनलाज्ड "}," आइटम 2 ": {" प्रकार ":" स्ट्रिंग " , "सूचकांक": "not_analyzed"}, "item3": {"type": "string", "index": "not_analyzed"}}}, "name": {"type": "string", "index" : "Not_analyzed"}}}  

इन मैपिंग के लिए अनुक्रमित ऑब्जेक्ट्स पर विचार करें

  {"name": "name1", "prop1": ["आइटम 1": "वेल 1", "आइटम 2": "वेल 2", "मद 3": "वेल 3"}, {"आइटम 1": "वेल 1", "आइटम 2": "वेल 5", "आइटम 3": "वेल 6 "{2}" और "एक अन्य वस्तु"   {"name": "name2", "prop1": [{"item1": "val2" , "आइटम 2": "वेल 7", "आइटम 3": "वैल 8"}, {"आइटम 1": "val12", "item2": "val9", "item3": "val10"}]}  

अब कहना है कि मैं उन दस्तावेज़ों को खोजना चाहता हूं जिनके पास prop1.item1 मान है "val1" या "val2" मैं भी परिणाम को इस तरह से हल करना चाहता हूं कि डब्लूएल 1 और वेल 2 दोनों के साथ दस्तावेज़ "val1" या "val2" में से केवल एक के बराबर अधिक अंक होगा।

मैंने निम्नलिखित प्रश्नों की कोशिश की है लेकिन यह मैचों की संख्या के आधार पर स्कोर नहीं लगता

  {"query": {"filtered": {"query": { "मैच_ल": {}}, "फिल्टर": {"नेस्टेड": {"पथ": "प्रॉप 1", "फिल्टर": {"या": [{"और": [{"शब्द": {"प्रॉप 1 । "1": "val1"}}, {"शब्द": {"prop1.item2": "val2"}}}}, {"और": [{"शब्द": {"prop1.item1": "val1 {"शब्द": {"prop1.item2": "val5"}}]}, {"और": [{"शब्द": {"prop1.item1": "val12"}}, {" हालांकि, यह दोनों दस्तावेजों को देना चाहिए, पहले दस्तावेज में अधिक अंक होना चाहिए, जैसा कि: "{{prop1.item2}:" val1 "}}}}}}}}} इसमें 2 में से 2 हैं फिल्टर में चीजें हैं जबकि दूसरे में केवल एक है क्या अधिकांश मैचों के आधार पर परिणाम को हल करने के लिए सही क्वेरी में कोई मदद कर सकता है?   

फिल्टर पर गणना नहीं की जाती है इसके बदले नेस्टेड क्वेरी का उपयोग किया जाता है:

 < कोड "{" नेस्टेड ": {" score_mode ":" sum "," path ":" prop1 "," query ": {" bool ": {" चाहिए ": [{" bool ": { "चाहिए": {{"मैच": {"prop1.item1": "val1"}}, {"मैच": {"prop1.item2": "val2"}}}}}, {"bool": { "चाहिए": [{"मैच": {"prop1.item1": "val1" {"मैच": {"prop1.item2": "val5"}}]}}, {"bool": {"चाहिए": [{"मैच": {"prop1.item1": "val12" }}, {"मैच": {"prop1.item2": "val9"}}}}}}}}}}}  

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -