Wednesday, 15 July 2015

Elasticsearch: Match query returns wrong results (Java API) -


मेरे पास निम्न समस्या है: जब मैं यह कमांड निष्पादित करता हूँ

  curl -XGET "localhost : 9200 / ग्राहक / बाहरी / _ खोज? सुंदर "-d @ json.txt  

जहां json.txt इस तरह दिखता है:

  {" query " : {"मैच": {"_id": "1"}}}  

मुझे निम्न आउटपुट मिलता है (मैं इसे छोटा करता था):

  { "हिट": {"कुल": 1, "अधिकतम_एसकोर": 1.0, "हिट": [{"_index": "ग्राहक", "_type": "बाहरी", "_id": "1", "_score" : 1.0, "_source": {"name": "Jan", "age": 99, "address": {"city": "KKKKKKK", "zip": "xxxx"}}}}}  

अब मैं जावा एपीआई का उपयोग करके ऐसा करने की कोशिश कर रहा हूं, लेकिन मैं इसे प्राप्त करने के लिए अभी भी प्रबंधित नहीं कर सकता (मैं 8 भिन्न अनुमोदन की कोशिश की)। मुझे हमेशा 0 हिट मिलते हैं कोड में अब मैं स्रोत फ़ाइल सीधे एक स्रोत के रूप में सेट कर रहा हूं, लेकिन जैसा कि आप देख सकते हैं मैंने XContentBuilder और WrapperQueryBuilder संस्करणों का उपयोग करने की कोशिश की लेकिन कुछ भी काम नहीं किया यहां मेरा कोड है:

  सार्वजनिक शून्य प्रोसेक्शन (स्ट्रिंग फ़ाइलपाथ, स्ट्रिंग इंडेक्स, स्ट्रिंग ... प्रकार) {स्ट्रिंग स्रोत = कनवर्टफ़ाइलटॉस्ट्रिंग (फ़ाइलपथ); // XContentBuilder क्वेरी = नल; // try {// JSONObject json = नया JSONObject (source.trim ()); // query = कन्वर्टजसनटोक्स कंटेंटबिइल्डर (जेएसएन); //} पकड़ (...) {...} // WrapperQueryBuilder क्वेरी = QueryBuilders.wrapperQuery (स्रोत); SearchResponse प्रतिक्रिया = client.prepare खोज (अनुक्रमणिका) .setSource (स्रोत) // .setQuery (क्वेरी) .setTypes (प्रकार) .get (); }  

एक प्रतिक्रिया के रूप में मुझे कोई हिट नहीं मिलता है:

  {"hits": {"total": 0, "max_score": null , "हिट": []}}  

मुझे आशा है कि किसी के पास इस कारण के बारे में एक विचार है क्योंकि मैं समाधान ढूंढने की कोशिश करने से पहले ही बीमार हूं: /

सर्वोत्तम नया "उत्तर" के लिए प्रयास करें लेकिन मैं अपने प्रश्न को संपादित नहीं कर सकता। तो मुझे लगता है कि मुंह बाहर है लेकिन मुझे नहीं पता कि अब प्रगति कैसे की जाए जब मैं डिबग मोड में चलाता हूं तो यह ठीक काम करता है (मैं इसे एक JUnit परीक्षण में उपयोग कर रहा हूं)। इसलिए मैंने सोचा कि मैं कनेक्शन को जल्दी से बंद कर रहा हूँ, इसलिए मैंने एक थ्रेड। नींद (5000) जोड़ा, लेकिन यह अभी भी विफल रहता है। यह केवल डिबग मोड में काम करता है: / अगर इसके महत्वपूर्ण मैं TransportClient का उपयोग कर रहा हूं।

यह थोड़ा अजीब है लेकिन मुझे आशा है कि किसी को कारण पता हो सकता है ...

चीयर्स, जन

संपादित करें:

समस्या हल हो गई है: चूंकि मैं इसे यूनिट परीक्षणों में प्रयोग कर रहा था और मैं डीबी की सामग्री को खाली कर दिया और पुनः लोड किया, सामग्री अभी तक तैयार नहीं हुआ जब अनुरोध निष्पादित किया गया था। मैं अब प्रतीक्षा कर रहा हूं कि स्थिति को हरा हो और फिर परीक्षण शुरू करें।


No comments:

Post a Comment