【发布时间】:2015-03-10 21:11:06
【问题描述】:
我正在使用 elasticsearch-rails gem 实现完成建议。除更新或删除外,一切正常。
例如当我更新一篇文章的标题并尝试再次研究时,相同的标题仍然存在。
我已经收录了Elasticsearch::Model::Callbacks
型号:
require 'elasticsearch/model'
class Article < ActiveRecord::Base
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
def self.suggest(query)
Article.__elasticsearch__.client.suggest(:index => Article.index_name, :body => {
:suggestions => {
:text => query,
:completion => {
:field => 'suggest'
}
}
})
end
settings :index => { :number_of_shards => 1 } do
mappings :dynamic => 'false' do
indexes :title, :type => 'string', :analyzer => 'english'
indexes :suggest, :type => 'completion', :index_analyzer => 'simple', :search_analyzer => 'simple', :payloads => true
end
end
def as_indexed_json(options={})
{
:name => self.title,
:suggest => {
:input => [self.title, self.content],
:output => self.title,
:payload => {
:id => self.id,
:content => self.content
}
}
}
end
end
控制器:
class ArticlesController < ApplicationController
def update
@article = Article.find(params[:id])
if @article.update_attributes(article_params)
render :json => @article
else
render :json => @article.errors
end
end
# ...
end
【问题讨论】:
-
尝试在控制台中创建/更新/删除,看看是否在弹性搜索调用中遇到任何错误。
-
当您调用
update_attributes时,article_params包含什么?
标签: ruby-on-rails autocomplete elasticsearch