2017-02-28 70 views
0

设置声明多个分词我想创建一个与我想在下面的顺序结果的属性的搜索索引:与搜索词开始如何在elasticsearch

  1. 首先结果
  2. 那么所有包含搜索词

所以这个结果,我想用https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenizer.html

,但我已经有一个标记kuromoji_tokenizer设置为我的索引。

那么我怎样才能添加另一个标记器的设置(并在分析仪中使用它),以便我可以履行以上scneario?

因此,例如在下面的json中,我可以将另一个孩子添加到tokenzier或tokenzier需要成为一个数组吗?

"settings": { 
    "analysis": { 
     "analyzer": { 
     "autocomplete": { 
      "tokenizer": "autocomplete", 
      "filter": [ 
      "lowercase" 
      ] 
     }, 
     "autocomplete_search": { 
      "tokenizer": "lowercase" 
     } 
     }, 
     "tokenizer": { 
     "autocomplete": { 
      "type": "edge_ngram", 
      "min_gram": 2, 
      "max_gram": 10, 
      "token_chars": [ 
      "letter" 
      ] 
     } 
     } 
    } 
    } 

回答

1

我相信你可以,是的。就在旁边将其添加到第一个,不创建一个数组,只要给它另外一个名字(在我的例子,我把它叫做“my_other_tokenizer”):

"settings": { 
    "analysis": { 
     "analyzer": { 
     "autocomplete": { 
      "tokenizer": "autocomplete", 
      "filter": [ 
      "lowercase" 
      ] 
     }, 
     "autocomplete_search": { 
      "tokenizer": "lowercase" 
     } 
     }, 
     "tokenizer": { 
     "autocomplete": { 
      "type": "edge_ngram", 
      "min_gram": 2, 
      "max_gram": 10, 
      "token_chars": [ 
      "letter" 
      ] 
     }, 
     "my_other_tokenizer": { 
      "type": "kuromoji_tokenizer", 
      "mode": "extended", 
      "discard_punctuation": "false", 
      "user_dictionary": "userdict_ja.txt" 
     } 
     } 
    } 
    } 

,然后只用它在你的分析仪设置,就像你为第一个标记器做的一样。

+0

它为我工作。谢谢。 – RohitWagh