0

我对 elassandra 非常陌生,在尝试更新我之前创建的索引时遇到了问题。我最初创建的索引如下

    curl -XPUT 'http://xxx.xx.xx.xxx:xxxx/yesanoa?pretty' -H 'Content-Type:   
    application/json' -d'
    {
    "settings": {
    "index.mapping.ignore_malformed": true,
    "analysis": {
    "normalizer": {
    "yesanoa_norm": {
      "type": "custom",
      "char_filter": [],
      "filter": ["lowercase", "asciifolding"]
      }
      }
      }
      },
      "mappings": {
      "movies": {"discover" : ".*","properties" : {"title" : {
                 "type" : "text", "normalizer": "yesanoa_norm", "index" : 
      "analyzed"},"site_review" : {
                 "type" : "text", "normalizer": "yesanoa_norm", "index" : 
      "analyzed"}}}}}'

我正在尝试如下更新,

    curl -XPUT 'http://xxx.xx.xx.xxx:xxxx/yesanoa/genre' -d'{
    "mappings": {
    "genre": {"discover" : ".*","properties" : {"title" : {
                 "type" : "text", "normalizer": "yesanoa_norm", "index" : 
    "analyzed"}}}}}'

我收到以下错误

“未找到 uri [/yesanoa/genre] 和方法 [PUT][root@dbcasyn elassandra-5.5.0.4] 的处理程序”

我尝试使用 nodetool 选项重建索引。但没有任何效果。

请帮我解决这个问题。

4

1 回答 1

1

当您拥有现有索引并想要添加新类型时(直到 Elaticsearch/Elassandra v5),您可以使用以下语法:

PUT anIndex/_mapping/aType
{
  "properties": {
     "aProperty": {
        "type": "text"
      }
   }
 }

请参阅弹性搜索放置映射文档

编辑:顺便说一句,映射更新不支持该discovery选项。你已经明确地做到了。

于 2018-10-04T10:50:21.387 回答