1

我将 Grails 与ElasticSearch Plugin一起使用。它工作正常,但我需要定义设置和分析器。

我怎样才能做到这一点?

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

{
 "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" }
    }
   }
  }
}
4

1 回答 1

1

正如 dmahaptro 建议的那样,使用 Elasticsearch 的 Rest API 是可行的。从http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index/的“mappings”标题下,您可以将以下内容复制并粘贴到您的 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" }
    }
   }
  }
}'

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

于 2013-08-13T12:14:28.637 回答