Ruby on rails 如何避免不在数据库中的记录而不重新索引solr
我有一张有4张唱片的模型票。我删除了数据库中的前2条记录,以创建一个测试用例,因为我遇到了一个错误,solr和数据库之间存在不匹配Ruby on rails 如何避免不在数据库中的记录而不重新索引solr,ruby-on-rails,solr,Ruby On Rails,Solr,我有一张有4张唱片的模型票。我删除了数据库中的前2条记录,以创建一个测试用例,因为我遇到了一个错误,solr和数据库之间存在不匹配 search = Sunspot.new_search(Ticket) do paginate(:page => 1, :per_page => 2) end list = search.execute list.results list.results为第1页返回[],为第2页返回其余2条记录 理想情况下,它应该是一页两条记录。如果不重新索引
search = Sunspot.new_search(Ticket) do
paginate(:page => 1, :per_page => 2)
end
list = search.execute
list.results
list.results
为第1页返回[]
,为第2页返回其余2条记录
理想情况下,它应该是一页两条记录。如果不重新索引solr,是否可以避免数据库中没有的记录?简短的回答是“否”
如果您直接从数据库中删除对象而不重新编制索引,那么您将始终处于搜索结果与数据库中的内容不匹配的位置
但是,,如果您通过rails删除对象,那么它将为您更新索引,以便删除的对象不再在索引中,您的搜索结果也将反映数据库中的内容。我删除了数据库中的记录,以创建一个测试用例,因为我遇到了一个solr和数据库不匹配的错误。只要你可以重新编制索引。但如果在删除数据库中的内容时不重新编制索引,则会遇到更多问题。