2012-05-14 9 views
21

私は私のマッピング定義では、以下のフィールドがあります。Elasticsearch "not_analyzed"フィールドがなぜ分割されるのですか?

... 
"my_field": { 
    "type": "string", 
    "index":"not_analyzed" 
} 
... 

値が3項に分割されていることをmy_field = 'test-some-another'の値を持つ私は、インデックス文書:testsomeanotherを。

私は間違っていますか?

私は、次のインデックスが作成されています。

curl -XPUT localhost:9200/my_index -d '{ 
    "index": { 
    "settings": { 
     "number_of_shards": 5, 
     "number_of_replicas": 2 
    }, 
    "mappings": { 
     "my_type": { 
     "_all": { 
      "enabled": false 
     }, 
     "_source": { 
      "compressed": true 
     }, 
     "properties": { 
      "my_field": { 
      "type": "string", 
      "index": "not_analyzed" 
      } 
     } 
     } 
    } 
    } 
}' 

その後、私は、インデックス、次の文書:私は次のようになります curl -XGET localhost:9200/my_index/_termlist :その後、私は、次のAPIとプラグインhttps://github.com/jprante/elasticsearch-index-termlist

curl -XPOST localhost:9200/my_index/my_type -d '{ 
    "my_field": "test-some-another" 
}' 

を使用レスポンス:

{"ok":true,"_shards":{"total":5,"successful":5,"failed":0},"terms": ["test","some","another"]} 

+0

問題を示す詳細な例を追加できますか?あなたはどのようにしてテストが他の3つの条件に分割されていると判断しましたか? – imotov

+0

あなたの答えに私の質問を変更しました。迅速な返信をありがとう! – Georgi

答えて

22

curl localhost:9200/my_index/_mapping?pretty=true

インデックスを作成するコマンドが正しくないと思わ:そのマッピングが実際に実行することによって設定されつつあることを確認します。ルート要素として"index" : {を含めることはできません。これを試してみてください:それは逆索引、Luceneのは、その素晴らしいと高速な全文検索機能を提供するために使用するデータ構造内に行くとき

curl -XPUT localhost:9200/my_index -d '{ 
    "settings": { 
    "number_of_shards": 5, 
    "number_of_replicas": 2 
    }, 
    "mappings": { 
    "my_type": { 
     "_all": { 
     "enabled": false 
     }, 
     "_source": { 
     "compressed": true 
     }, 
     "properties": { 
     "my_field": { 
      "type": "string", 
      "index": "not_analyzed" 
     } 
     } 
    } 
    } 
}' 
+0

ありがとう!私のマッピング定義が今すぐ適用されます。 – Georgi

4

がElasticSearchでフィールドがインデックス化されます。フィールドを検索する場合は、インデックスを作成する必要があります。フィールドを索引付けするときに、索引をそのまま索引付けするのか、それとも分析したいのかを決めることができます。つまり、トークン化子を適用してトークン(単語)のリストとトークンのリストを生成します生成されたトークンを変更することができます(さらにいくつかを追加または削除します)。フィールドをインデックスする方法は、フィールドの検索方法に影響します。フィールドを索引付けしてもそれを分析せず、そのテキストが複数の単語で構成されている場合は、その特定のテキスト(空白が含まれている)だけを検索することができます。

検索したいフィールドのみを表示することができます。インデックス付きで保存されません(デフォルトはlucene)。 検索したいフィールドと索引を付けて保存するフィールドを持つことができます。 検索したくないフィールドを表示するには、検索する必要があります。

関連する問題