如何在Elasticsearch中使用关键字分析器进行搜索?

时间:2013-06-27 11:05:41

标签: elasticsearch tire

我在使用轮胎和关键字类型分析器设置弹性搜索时遇到问题。

我的映射定义是:

Tire.index 'my_index' do
    delete

    create :mappings => {

        "my_type" => {
          :properties => {
            :id => { :type => 'string', :index => 'not_analyzed', :include_in_all => false },
            :user_id => { :type => 'string', :index => 'not_analyzed'},
            :team_id => { :type => 'string', :index => 'not_analyzed', :analyzer => 'keyword'},
            "_timestamp" => { :enabled => true,  :path => "created_on"}
          }
        }
}
end

我添加了一些数据 team:id: "blah-blih-bloh"

如果我搜索

curl -XGET 'http://localhost:9200/my_index/my_type/_search?q=team_id:blah'

如果分析仪是“关键字”,我可以找到我插入的数据。

我想使用facet为team_id分组数据,但鉴于关键字分析器似乎没有按预期工作,我无法检索到良好的结果,因为它标记了“team_id”字段。 如果我有两个用户使用team_id =“blah-blih-bloh”,我会得到2个结果为“blah”,2个用于“blih”,2个用于“bloh”,2个用于“blah-blih-bloh”。

我错过了什么吗?

编辑:我解决了这个问题,这与Tire有关。如果我做了

,则轮胎没有被正确破坏并重新创建索引
curl -XDELETE

在ElasticSearch的索引上,然后我执行了与以前相同的代码,正确创建了映射,数据插入正常,一切都按预期工作。

0 个答案:

没有答案