我有一个模型,如
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中是不可见的。
答案 0 :(得分:0)
你可能以错误的方式完成了你的提升(取决于提尔如何提升)请看这个链接: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-boost-field.html 我也知道Elasticsearch建议在查询时提升。
希望这有帮助。
答案 1 :(得分:0)
@ Karmi的建议是为我做的。
您必须删除索引并重新创建索引,或将FORCE与Rake任务一起使用
- Karmi