16

我有一个使用 elasticsearch-jetty 项目的嵌入式弹性搜索,我需要设置为使用比默认值更好的标记器。我想使用关键字标记器。

我一生都无法弄清楚如何通过配置文件来做到这一点。谁能指出我通过配置文件做到这一点的方法?

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

编辑/更新:我在运行 curl -XPUT 或 -XPOST 到 localhost:9200 以尝试从我在此处搜索帮助时看到的一些示例/论坛调整设置时遇到问题,我得到的结果是“否” uri [] 和方法 [PUT]/[POST] 的处理程序。

编辑 2:更新,对索引执行 XPUT 工作,但我收到有关“索引已存在”的错误。我知道它存在,我想更新它。

4

2 回答 2

27

您可以在配置文件中定义映射,但在大多数情况下,通过 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"
           }
        }
     }
  }
}'
于 2013-02-26T01:17:48.303 回答
0

要更新现有索引,请使用

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

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

于 2014-05-19T18:58:27.737 回答