Sunspot Rails之间的区别:text an:string type fields

Sah*_*har 8 solr ruby-on-rails sunspot

众所周知,在您的可搜索模型中,您可以定义类型索引:text以及:string,例如:

class Post < ActiveRecord::Base
  searchable do
   string :title
   text :title, :body    
end
Run Code Online (Sandbox Code Playgroud)

我尝试搜索文本字段类型和字符串字段类型之间的基本差异,并且能够得到基本的理解,如:

  1. 文本字段类型是标记化的,这使得在其中进行全文搜索的速度非常快.
  2. 您不能使用order_by,即对文本字段进行排序,如果您需要对该字段进行排序,则需要将其定义为:string.

所以我在这里寻找的是文本字段类型和字符串字段类型之间的所有CONCEPTUALUSAGE差异,这样我可以在将字段定义为字符串或文本或两者时权衡我的意见.

注意:我并不是说您在一个答案中提供所有差异,每个答案也会有一个差异,但请确保您已经给出的差异尚未给出.

rma*_*002 16

文字字段

当文本字段被索引时,它们被分解为它们的组成单词,然后使用一组可定义的过滤器进行处理(使用Sunspot的默认Solr安装,它们只是低级的).此过程称为标记化,它允许使用全文匹配搜索文本字段.您可以在Solr wiki http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters上阅读有关标记化和可用过滤器选项的更多信息.

字符串字段

字符串字段存储字符串数据 这与文本字段有何不同?文本字段被标记化,也就是说它被分解成组成单词; 这就是全文搜索的工作原理.另一方面,字符串字段只是按原样索引:索引数据从头到尾完全是该字符串.

文件

https://github.com/sunspot/sunspot/wiki/Setting-up-classes-for-search-and-indexing