2011-06-08 13 views
22

का उपयोग कर कस्टम लोचदार खोज विश्लेषक को परिभाषित करें क्या कोई अनुक्रमणिका बनाने और जावा एपीआई का उपयोग कर एक कस्टम विश्लेषक निर्दिष्ट करने का कोई तरीका है? यह सूचकांक निर्माण पर मैपिंग जोड़ने का समर्थन करता है, लेकिन मैं HTTP PUT के माध्यम से JSON भेजे बिना इस तरह कुछ करने के लिए एक तरह से नहीं मिल सकता है:जावा एपीआई

curl -XPUT localhost:9200/twitter?pretty=true -d '{ 
"analysis": { 
     "analyzer": { 
      "steak" : { 
       "type" : "custom", 
       "tokenizer" : "standard", 
       "filter" : ["snowball", "standard", "lowercase"] 
      } 
     } 
    } 
}' 

मैं ऐसे एक प्रश्न JSONBuilder का उपयोग कर निर्माण कर सकते हैं, लेकिन मैं नहीं कर सकता एपीआई में इसे चलाने के लिए कोई जगह नहीं ढूंढें, CreateIndexRequest में मेरे पास कुछ भी नहीं है जिसका उपयोग मैं कर सकता हूं और न ही client.admin().indices(), जहां तक ​​मैं देख सकता हूं। ऐसा करने का सही तरीका क्या है?

उत्तर

26

आप client.admin().indices().prepareCreate("twitter").setSettings(...) का उपयोग कर विश्लेषक सेट कर सकते हैं। सेटिंग्स बनाने के कई तरीके हैं। आप पाठ से उन्हें लोड कर सकते हैं नक्शा या यहाँ तक कि jsonBuilder का उपयोग करता है, तो यह है कि तुम क्या चाहते हो:

client.admin().indices().prepareCreate("twitter") 
      .setSettings(Settings.settingsBuilder().loadFromSource(jsonBuilder() 
       .startObject() 
        .startObject("analysis") 
         .startObject("analyzer") 
          .startObject("steak") 
           .field("type", "custom") 
           .field("tokenizer", "standard") 
           .field("filter", new String[]{"snowball", "standard", "lowercase"}) 
          .endObject() 
         .endObject() 
        .endObject() 
       .endObject().string())) 
      .execute().actionGet(); 
+0

जो मेरे लिए काम करता है, धन्यवाद! – Felix

1

आप environnent आप भी इस परियोजना जो जावा एनोटेशन के आधार पर अपनी अनुक्रमणिका पैदा करेगा का उपयोग करता है सकते हैं एक परीक्षण पर हैं। https://github.com/tlrx/elasticsearch-test

+0

अच्छा काम। इंडेक्स ऑब्जेक्ट्स के लिए मैं वास्तव में जावा एपी पीपीओ मैपिंग में चूक जाता हूं .... (सी # में कुछ अच्छी परियोजनाएं हैं, जैसे नेस्ट जो इसे लागू करता है – Roman

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