如何在elasticsearch中设置标记器



我有一个使用弹性搜索码头项目的嵌入式弹性搜索,我需要设置为使用比默认值更好的令牌化器。我想使用关键字tokenizer。

我一辈子都想不出如何通过配置文件做到这一点。有人能通过配置文件为我指出一种方法吗?

顺便说一句,在索引启动和运行时,是否可以通过对索引执行POST来调整索引?我真的很想知道如何使用这个,谢谢。

EDIT/update:我在将curl-XPUT或-XPOST运行到localhost:9200以尝试调整我在搜索时看到的一些示例/论坛中的设置时遇到了问题。为了获得帮助,我得到了"没有uri[]和方法[PUT]/[POST]的处理程序"的结果。

编辑2:更新,对索引进行XPUT是有效的,但我收到了一个关于"索引已经存在"的错误。我知道它存在,我想更新它。

您可以在配置文件中定义映射,但在大多数情况下,通过API配置更容易/更灵活。例如,此命令将向索引test:添加关键字/小写分析器

$ curl -XPUT localhost:9200/testindex/ -d '
{
  "settings":{
     "index":{
        "analysis":{
           "analyzer":{
              "analyzer_keyword":{
                 "tokenizer":"keyword",
                 "filter":"lowercase"
              }
           }
        }
     }
  },
  "mappings":{
     "test":{
        "properties":{
           "title":{
              "analyzer":"analyzer_keyword",
              "type":"string"
           }
        }
     }
  }
}'

要更新现有索引,请使用

$ curl -XPUT localhost:9200/testindex/_settings -d '
{
..........
}

但是,您不能更新非动态设置。

相关内容

  • 没有找到相关文章

最新更新