如何为ElasticSearch定义设置和分析器?

时间:2013-08-12 13:33:40

标签: spring grails elasticsearch grails-2.0

我正在使用带有ElasticSearch Plugin的Grails。它工作正常,但我需要定义设置和分析器。

我该怎么做?

我想使用以下设置和映射:

{
 "settings" : {
   "index" : {
    "analysis" : {
      "analyzer" : {
         "autocomplete" : "engram", 
         "filter" : ["lowercase"]
       }
     },
     "tokenizer" : {
        "engram" : {
          "type" : "edgeNgram", 
          "min_gram" : 3,
          "max_gram" : 10
      }
     }
    }
   }
  },
  "mappings" : {
    "contacts" : {
      "name" : {
        "index" : "string",
        "index_analyzer" : "autocomplete",
        "index" : "analyzed", "search_analyzer" : "standard"
      },
      "country" : { "type" : "string" }
    }
   }
  }
}

1 个答案:

答案 0 :(得分:1)

正如dmahaptro建议的那样,使用Elasticsearch的Rest API会起作用。从“映射”标题下的http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index/开始,您可以将以下内容复制并粘贴到shell中:

curl -XPOST localhost:9200/index_name -d '{
"settings" : {
   "index" : {
    "analysis" : {
      "analyzer" : {
         "autocomplete" : "engram", 
         "filter" : ["lowercase"]
       }
     },
     "tokenizer" : {
        "engram" : {
          "type" : "edgeNgram", 
          "min_gram" : 3,
          "max_gram" : 10
      }
     }
    }
   }
  },
  "mappings" : {
    "contacts" : {
      "name" : {
        "index" : "string",
        "index_analyzer" : "autocomplete",
        "index" : "analyzed", "search_analyzer" : "standard"
      },
      "country" : { "type" : "string" }
    }
   }
  }
}'

检查索引是否使用正确设置创建的方法是使用头部插件:https://github.com/mobz/elasticsearch-head。在浏览器中启动head插件,然后单击所有索引及其设置,映射等的“Cluster State”选项卡。