2
多种类型与单一类型的太阳黑子搜索有什么优点和缺点?什么是首选方式?多种类型与单一类型的太阳黑子搜索
我看了很多文档,似乎无法找到答案。
- https://github.com/sunspot/sunspot
- https://github.com/sunspot/sunspot/wiki
- http://sunspot.github.com/sunspot/rails/docs/index.html
- 多类型搜索的http://sunspot.github.com/sunspot/docs/Sunspot.html#search-class_method
实施例:
Sunspot.search(Post, Comment) do
with :blog_id, 1
fulltext 'hello' do
fields(:comment_body)
end
end
单的T实施例ype搜索有关联的另一个型号:
class Post < ActiveRecord::Base
searchable do
text :comments do
comments.map { |comment| comment.body }
end
end
Post.search do
fulltext 'hello' do
fields(:comments)
end
end
看来我可以使用任一方法(多种类型或单一类型)实现相同的结果。
在任何情况下,似乎更像是一个应用程序问题(用户搜索的语义是什么,以及如何建模?)而不是技术问题。 –
嗨尼克 - 谢谢你对太阳黑子的评论和你的工作。要回答您的问题,用户通过表单搜索以找到匹配的帖子列表。表单中有复选框,允许用户搜索全部或部分选定的字段。并非所有字段都是Post模型的属性,有些字段来自其他模型(如评论模型)。其他模型与Post模型相关联。例如,发布has_many:评论。因此,在用户提交表单后,它会执行一个控制器的方法,然后该方法仅调用搜索模型方法来执行搜索。 – konyak
我的问题只是一般(多种类型与单一类型搜索)。但是要分解它,1。我们是否应该在每个模型中放置可搜索块,并且执行Sunspot.search(model1,model2等);或者我们应该将可搜索块放入用户关心的一个模型中,并使用映射关联模型之间的数据。 2.什么时候多种类型搜索方便?我看到很多关于单一类型的例子,很少有多种类型的例子。多种类型搜索没有用或推荐? – konyak