Elasticsearch字段提升未显示在映射中

时间:2013-11-29 13:07:22

标签: ruby elasticsearch tire

我有一个模型,如

class Video < ActiveRecord::Base
  include Tire::Model::Search
  include Tire::Model::Callbacks

  mapping do
    indexes :id, index: :not_analyzed
    indexes :title, analyzer: 'snowball'
    indexes :hashtags, analyzer: 'keyword', type: :array, boost: 10
  end

....
end

我的目标是提高hashtag点击_all查询中其他字段的点击次数。

执行导入后,我使用此端点检查映射 -

curl -XGET 'http://localhost:9200/videos/_mapping'

我得到了这个回复

{
    "videos": {
        "video": {
            "properties": {
                "created_at": {
                    "type": "date",
                    "format": "dateOptionalTime"
                },
                "hashtags": {
                    "type": "string"
                },
                "id": {
                    "type": "long"
                },
                "title": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "date",
                    "format": "dateOptionalTime"
                },
                "video_id": {
                    "type": "string"
                }
            }
        }
    }
}

我注意到映射没有hashtag属性的提升。我在这里错过了什么吗?

修改1:

如果我Video.index.mapping_to_json,它会在哈希中为:boost提供hashtag。但是在我导入后,这在ES中是不可见的。

2 个答案:

答案 0 :(得分:0)

你可能以错误的方式完成了你的提升(取决于提尔如何提升)请看这个链接: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-boost-field.html 我也知道Elasticsearch建议在查询时提升。

希望这有帮助。

答案 1 :(得分:0)

@ Karmi的建议是为我做的。

  

您必须删除索引并重新创建索引,或将FORCE与Rake任务一起使用

     

- Karmi