如何在Elastic搜索中创建和添加自定义分析器?

时间:2016-01-24 22:40:36

标签: elasticsearch

我有一批"智能手机"在ES和我的产品需要使用"智能手机"文本。所以我正在研究复合词令牌过滤器。具体来说,我打算使用这样的自定义过滤器:

Error: EPERM: operation not permitted, write

这是正确的做法吗?另外我想问你如何创建自定义分析器并将其添加到ES?我查看了几个链接,但无法弄清楚如何做到这一点。我想我正在寻找正确的语法。 谢谢

编辑

我正在运行1.4.5版本。 我确认自定义分析仪已成功添加:

curl -XPUT 'localhost:9200/_all/_settings -d '
{
  "analysis" : {
    "analyzer":{
      "second":{
        "type":"custom",
        "tokenizer":"standard",
        "filter":["myFilter"]
      }
      "filter": {
        "myFilter" :{
             "type" : "dictionary_decompounder"
             "word_list": ["smart", "phone"]
             }
             }             
    }
}
}
'

1 个答案:

答案 0 :(得分:3)

您的方法看起来不错,我还会考虑添加lowercase token filter,这样即使智能手机(注意大写' S')也会被分成智能手机

然后你可以用这样的分析器创建索引,

custom analyzer

您要创建名为 your_index 的索引,curl -XGET 'localhost:9200/your_index/_analyze' -d ' { "analyzer" : "second", "text" : "LG Android smartphone" }' 名为 second 的索引,并将其应用于 name 字段。

您可以检查分析仪是否按预期使用analyze api这样

{{1}}

希望这会有所帮助!!