Solr:在哪里存储其他信息?

时间:2011-06-29 11:11:39

标签: solr

我想在索引时间内为每个索引文档提供附加信息 并在查询期间在同一分析仪中访问此信息以进行比较 所以。从理论上讲,将此值写入本文档中的某个字段并在查询时也搜索此字段会很棒。

f.e。我有动物db。我想找到里面有3个单词'dog'的所有文件。 (只是一个例子)。我可以为我的“animals”字段设置我自定义的BaseTokenFilterFactory,它将生成我的自定义TokenFilter,它将只计算所有'dog'字样并将此数字存储在某处。所以。我可以存储此值以在搜索时访问它吗?

1 个答案:

答案 0 :(得分:1)

您的示例听起来更适合由Solr中的自定义相似性或查询函数处理而不是自定义分析器。

例如,如果使用Solr 4.0,您可以使用函数termfreq(field,term)按照狗出现的次数进行排序。或者您可以将其用作过滤器,如下所示:

fq={!frange l=3 u=100000}termfreq(animals,"dog")

这将过滤动物字段中至少出现3次单词dog的所有文档。 使用此方法的好处是,您不会影响文档的评分,只会过滤它们。

自Solr 1.4以来,存在按功能过滤的功能,因此即使您使用的是早期版本的Solr(> 1.4),您也可以轻松自己编写“termfreq”函数查询