我是否应该担心优化大型Solr字段,并且有很多重复的术语?

时间:2013-11-02 11:30:21

标签: optimization solr lucene tf-idf

我找到了一种在Solr中搜索关系数据的简单方法,但我不确定是否应该进一步优化它。

让我举个例子:说,我们有一个系统,用户在个人收藏中组织书籍。一本书有一种类型,例如“戏剧”,“惊悚”,“恐怖”等。用户集合可以,并且在大多数情况下,它包含来自不同类型的书籍。

如果我想创建一个搜索,用户可以按类型搜索集合,我想返回包含与流派查询最相关的书籍的结果。我做的是一个简单的伎俩 - 我为该集合添加了一个搜索字段,名为“genres”,它是该集合中所有书籍类型的串联字符串。此字符串字段在索引时创建。这很有意义,因为,如果一个集合包含30个“惊悚片”和20个“喜剧”书籍,在搜索“惊悚片”时,它将显示为比搜索“喜剧”更相关的结果。

然而,正如你可以猜到的那样,“流派”字段最终会有很多重复的术语。由于它仅在幕后使用,并且不在任何地方显示,因此这不是数据完整性而是优化问题恕我直言。

我对Solr特别陌生。我知道它是如何工作的,我假设在构建倒排索引时,每个术语都与一个简单的频率计数相关联。从技术上讲,如果“类型”字段由100个术语或10000个术语组成,其中9500个是“Thriller”,那么索引和查询速度应该没什么关系,对吗?

如果我错了,那么是否存在语法,即使在输入文本中也可以给出提升?比方说,如果不是10000个术语,“流派”字段看起来像:

“Thriller ^ 8500 Comedy ^ 125 Drama ^ 12”

1 个答案:

答案 0 :(得分:0)

您应该使用Solr的有效负载功能,以便在文本中增加单词。 例如,检查http://sujitpal.blogspot.ru/2011/01/payloads-with-solr.html

关注您的方法:如果stored, termPositions, termOffsets字段属性设置为false,则一切都会好。