如何在elasticsearch中设置tokenizer

cdi*_*run 14 rest config elasticsearch

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

我无法弄清楚我的生活如何通过配置文件来做到这一点.任何人都可以通过配置文件指出我的方法吗?

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

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

编辑2:更新,XPUT到索引工作,但我得到一个关于"索引已经存在"的错误.我知道它存在,我想更新它.

Zac*_*ach 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"
           }
        }
     }
  }
}'
Run Code Online (Sandbox Code Playgroud)

  • 如果已经创建了索引,则可以使用PUT映射API来更改映射:http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html.但请注意,一旦创建了属性的映射,就无法对其进行更改.如果需要更改属性,则必须使用新映射创建新索引 (2认同)