2017-03-03 4 views
0

動作しない私はそのように見えるのidという名前のフィールド、持っている:キーワードは、トークン化され、正確な一致は

ventures.something.123

それはマッピングですが:

{ 
    "id":{ 
     "fields":{ 
     "keyword":{ 
      "ignore_above":256, 
      "type":"keyword" 
     } 
     }, 
     "type":"text" 
    } 
} 

私の理解では、そのキーワードのみ完全一致を可能にする - これは私が望むものです。

> http http://localhost:9200/my_index/_analyze field=id text='ventures.house.1137'

{ 
    "tokens": [ 
     { 
      "end_offset": 14, 
      "position": 0, 
      "start_offset": 0, 
      "token": "ventures.house", 
      "type": "<ALPHANUM>" 
     }, 
     { 
      "end_offset": 19, 
      "position": 1, 
      "start_offset": 15, 
      "token": "1137", 
      "type": "<NUM>" 
     } 
    ] 
} 

を...とidの検索が実際ventures.houseで始まるすべてのIDを返します。

しかし、アナライザは、それがトークン化だと言われます。

どうして私は完全に一致することができますか?

It's ES 5.2。 インデックスこのフィールドを、それが検索可能ですが、指標値が正確に指定されている:https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping-intro.html#_index_2

から

答えて

1

はnot_analyzed。それを分析しないでください。

{ 
    "tag": { 
     "type":  "string", 
     "index": "not_analyzed" 
    } 
} 
+0

この情報は、ES 1.xおよび2.xではなく、5.xでの情報です。 'not_analyzed'は' keyword'に置き換えられました。 – NikoNyrh

0

私はそれが私のelasticsearch-dslライブラリが直接キーワードを作成しないように見えるが、サブフィールドとして追加します、マッピングを読み違えます。

0

フィールド 'id'をキーワードとして定義しようとしましたか?

この場合、分析されずにそのまま保存されます。 私はあなたの質問を正しく理解するとき、これはあなたが望むものです。

{ 
"id":{ 
    "type":"keyword" 
} 
} 

私はこれが助けを願っていhttps://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html

を参照してください。キリスト教

関連する問題