2017-03-03 81 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啓動IDS。

爲什麼會這樣,我該如何進行精確匹配?

這是ES 5.2。

回答

0

我誤讀了映射,它看起來像我的elasticsearch-dsl庫不直接創建一個關鍵字,但會將其作爲一個分支。