多值字段和标记化字段之间的评分差异

时间:2012-01-06 02:35:08

标签: solr indexing lucene

例如,我每个文档都有几个标签。我可以

  • 将它们索引为按空格uisng WhiteSpaceTokenizer分割的单个文本字符串。 (例如“tag1 tag2 tag3”)
  • 使用KeywordAnalyzer将它们分别添加到单个字段名称中多次( 示例 doc.addField("tags1", "tag1"); doc.addField("tags", "tag2"); doc.addField("tags", "tag23)

这两种方法都有效。问题是对这些类型的索引有何不同? (即场归一化因子,tf / idf计数,场长calucaltion,斜率因子等)

2 个答案:

答案 0 :(得分:1)

无论如何,Lucene将连接场景背后的多值域的所有值,所以它与你的第一个案例没有太大的不同,如果有的话。如果您仅将标记用作过滤器(给我标记为tag2的所有文档),那么您肯定不会看到任何差异。

答案 1 :(得分:0)

我认为多值会更准确。

想象一个标记化的字符串“spider web developer”

vs

值为“spider”和“web developer”的多值字段

搜索“web开发者”会匹配两个字段,但匹配与多值字段可以被视为更准确。