Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用雪貂构建独特的标记云_Ruby On Rails_Tags_Ferret - Fatal编程技术网

Ruby on rails 使用雪貂构建独特的标记云

Ruby on rails 使用雪貂构建独特的标记云,ruby-on-rails,tags,ferret,Ruby On Rails,Tags,Ferret,我一直在一个小项目中使用Ferret作为全文搜索引擎 通过文档和一些在线示例,我已经能够使用全文索引整合标记云生成器,以帮助使用IndexReader.terms方法生成标记云 到目前为止,当我想要基于搜索结果获取术语数据时,它工作得相当好 例如,如果用户搜索“蛋糕”,我想向他们显示一个与“蛋糕”相关联的术语标记云 我一直在寻找terms方法可以与搜索结果集或类似内容结合使用的示例 目前,我正在使用以下方法生成标记列表: reader = Ferret::Index::IndexReader.n

我一直在一个小项目中使用Ferret作为全文搜索引擎

通过文档和一些在线示例,我已经能够使用全文索引整合标记云生成器,以帮助使用
IndexReader.terms
方法生成标记云

到目前为止,当我想要基于搜索结果获取术语数据时,它工作得相当好

例如,如果用户搜索“蛋糕”,我想向他们显示一个与“蛋糕”相关联的术语标记云

我一直在寻找
terms
方法可以与搜索结果集或类似内容结合使用的示例

目前,我正在使用以下方法生成标记列表:

reader = Ferret::Index::IndexReader.new(Scrape.find_last_index_version)
terms = []
reader.terms(:all_quotes).each do |term, doc_freq|
    terms << [term, doc_freq]
end
reader=Ferret::Index::IndexReader.new(Scrape.find\u last\u Index\u版本)
术语=[]
reader.terms(:所有引号)。每个do | term,doc | freq|

术语它更像术语频率图(像单词)而不是标签云?或者这些在标记字段中?无论如何,索引不会在每个可能的文档子集(例如搜索结果)中跟踪术语频率,因此该方法不会很快,即使它存在。对于单个文档,您可以获取TermFreqVector并提供建议文档,这些文档与该文档中的其他常用术语非常匹配。因此,您可以获取一些最重要的结果,从每个结果中获取术语向量,然后将它们相加,但是这些聚合函数并不存在(它们通常不会在其中放入缓慢的操作)