2013-07-10 2 views
0

아래 상태를 JAVA로 변경하고 싶습니다.elasticsearch 토크 나이저 설정

curl -XPUT 'localhost:9200/test' -d ' 
{ 
    "settings" : { 
     "analysis" : { 
      "analyzer" : { 
       "my_ngram_analyzer" : { 
        "tokenizer" : "my_ngram_tokenizer" 
       } 
      }, 
      "tokenizer" : { 
       "my_ngram_tokenizer" : { 
        "type" : "nGram", 
        "min_gram" : "2", 
        "max_gram" : "3", 
       } 
      } 
     } 
    } 
}' 

나는 다음과 같이이 문제를 해결하려고 :

client.admin().indices().prepareCreate("test") 
     .setSettings(ImmutableSettings.settingsBuilder().loadFromSource(jsonBuilder() 
      .startObject() 
       .startObject("analysis") 
        .startObject("analyzer") 
         .startObject("my_ngram_analyzer") 
          .field("tokenizer", "my_ngram_tokenizer")  
         .endObject() 
         .startObject("tokenizer") 
          .field("type", "nGram")  
          .field("min_gram", "2") 
          .field("max_gram","3") 
         .endObject() 

        .endObject() 
       .endObject() 
      .endObject().string())) 
     .execute().actionGet(); 

불행하게도, 나는()

은 알려 주시기 바랍니다 jsonBuilder에 대한 오류를 얻었다. 미리 감사드립니다.

+0

Java를 사용 해본 적이 있습니까? 그렇다면 어떤 문제에 빠지셨습니까? – mthmulders

답변

2

startObject()/endObject()은 게시 한 JSON 버전과 일치하지 않는 것 같습니다.

.startObject("tokenizer") 전에 endObject()이 누락되었다고 생각합니다. 나는 다음과 같이 할 것입니다 :

client.admin().indices().prepareCreate("test") 
    .setSettings(ImmutableSettings.settingsBuilder().loadFromSource(jsonBuilder() 
     .startObject() 
      .startObject("analysis") 
       .startObject("analyzer") 
        .startObject("my_ngram_analyzer") 
         .field("tokenizer", "my_ngram_tokenizer")  
        .endObject() 
       .endObject() 
       .startObject("tokenizer") 
        .field("type", "nGram")  
        .field("min_gram", "2") 
        .field("max_gram","3") 
       .endObject() 
      .endObject() 
     .endObject().string())) 
    .execute().actionGet(); 

그래도 작동하지 않으면 전체 오류 스택 추적을 제공하십시오. 도움이 될 것입니다.

+0

답장을 보내 주셔서 감사합니다. 잘 작동한다. – Soo

+0

@Soo 제발 도움이된다면 답을 받아 들일 수 있겠습니까? 고마워하는 것이 더 낫다;) – javanna

관련 문제