我有一个使用弹性搜索码头项目的嵌入式弹性搜索,我需要设置为使用比默认值更好的令牌化器。我想使用关键字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 '
{
..........
}
但是,您不能更新非动态设置。