21

マッピング定義に次のフィールドがあります。

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

その値の値を持つドキュメントにインデックスを付けると、 、、 のmy_field = 'test-some-another'3 つの用語に分割されます。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 -XPOST localhost:9200/my_index/my_type -d '{
  "my_field": "test-some-another"
}'

次に、プラグインhttps://github.com/jprante/elasticsearch-index-termlistを次の API で 使用します。 curl -XGET localhost:9200/my_index/_termlist 次の応答が得られます。

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

4

2 に答える 2

23

次のコマンドを実行して、マッピングが実際に設定されていることを確認します。

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

インデックスを作成するコマンドが正しくないようです。"index" : {ルート要素として含めるべきではありません。これを試して:

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"
        }
      }
    }
  }
}'  
于 2012-05-14T13:34:28.033 に答える
4

ElasticSearch では、フィールドが逆インデックス内にある場合にインデックスが作成されます。これは、Lucene が優れた高速の全文検索機能を提供するために使用するデータ構造です。フィールドを検索する場合は、インデックスを作成する必要があります。フィールドにインデックスを付ける場合、そのままインデックスするか、分析するかを決定できます。つまり、トークン (単語) のリストとトークンのリストを生成するトークナイザーを適用するかどうかを決定します。生成されたトークンを変更できるフィルター (一部を追加または削除することもできます)。フィールドにインデックスを付ける方法は、フィールドの検索方法に影響します。フィールドにインデックスを付けても分析しない場合、そのテキストが複数の単語で構成されている場合、空白を含む正確な特定のテキストを検索するだけで、そのドキュメントを見つけることができます。

検索するだけで表示しないフィールドを持つことができます: インデックス化され、保存されません (lucene のデフォルト)。検索および取得したいフィールドを持つことができます: 索引付けされ、保存されます。検索したくないが、表示するために取得したいフィールドを持つことができます。

于 2015-08-22T10:50:26.377 に答える