2013-02-26 20 views
12

elasticsearch-jettyプロジェクトを使用してelasticsearchを埋め込みました。デフォルトよりもトークナイザを使用するように設定する必要があります。私はキーワードtokenizerを使用したいと思います。elasticsearchでトークナイザを設定する方法

設定ファイルでこれをどうやって行うのか私には分かりません。誰でも設定ファイルを使ってこれを行う方法で私を指摘できますか?

インデックスをPOSTして起動している間にインデックスを調整することは可能ですか?私は本当にこれを使用する方法を理解したいと思います、ありがとう。

EDIT/update:curl -XPUTまたは-XPOSTをlocalhost:9200に実行して、ここで役立つ検索の際に見たサンプル/フォーラムの設定を調整しようとしています。 uri []とメソッド[PUT]/[POST]のための 'No handler'の結果。

EDIT 2:更新、インデックスへのXPUTを実行しますが、「インデックスは既に存在します」というエラーが表示されます。私はそれが存在することを知っている、私はそれを更新したい。

答えて

24

設定ファイルにマッピングを定義することはできますが、ほとんどの場合、APIを使用して設定するのがより簡単で柔軟です。たとえば、このコマンドはインデックスtestにキーワード/小文字アナライザを追加します:あなたは非動的な設定を更新することはできませんしかし、既存のインデックスを更新するには

$ curl -XPUT localhost:9200/testindex/ -d ' 
{ 
    "settings":{ 
    "index":{ 
     "analysis":{ 
      "analyzer":{ 
       "analyzer_keyword":{ 
       "tokenizer":"keyword", 
       "filter":"lowercase" 
       } 
      } 
     } 
    } 
    }, 
    "mappings":{ 
    "test":{ 
     "properties":{ 
      "title":{ 
       "analyzer":"analyzer_keyword", 
       "type":"string" 
      } 
     } 
    } 
    } 
}' 
+1

返信いただきありがとうございます。現在存在するインデックスに対してXPUTを実行しようとしましたが、既に存在するインデックスについてエラーが発生しました。私が理解するのを助けることができますか?既存の索引を編集することは可能ですか? – cdietschrun

+1

インデックスがすでに作成されている場合は、PUTマッピングAPIを使用してマッピングを変更できます。http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html ただし、プロパティのマッピングが作成された後で変更することはできません。プロパティを変更する必要がある場合は、新しいマッピングで新しいインデックスを作成する必要があります – Zach

0

$ curl -XPUT localhost:9200/testindex/_settings -d ' 
{ 
.......... 
} 

を使用しています。

関連する問題