Solr:在哪里存储附加信息?
我想在索引期间为每个索引文档提供附加信息。Solr:在哪里存储附加信息?,solr,Solr,我想在索引期间为每个索引文档提供附加信息。 并在查询期间在同一分析器中访问此信息以进行比较。 所以从理论上讲,将该值写入文档中的某个字段,并在查询时搜索该字段是非常好的 f、 我有一个动物数据库。我想找到里面有三个字“狗”的所有文件。(只是一个例子)。我可以为我的“动物”字段设置我的自定义BaseTokenFilterFactory,它将生成我的自定义TokenFilter,它将只计算所有“狗”字并将此数字存储在某个地方。所以在哪里可以存储此值以在搜索时访问它?您的示例听起来更适合由Solr中的
并在查询期间在同一分析器中访问此信息以进行比较。
所以从理论上讲,将该值写入文档中的某个字段,并在查询时搜索该字段是非常好的
f、 我有一个动物数据库。我想找到里面有三个字“狗”的所有文件。(只是一个例子)。我可以为我的“动物”字段设置我的自定义BaseTokenFilterFactory,它将生成我的自定义TokenFilter,它将只计算所有“狗”字并将此数字存储在某个地方。所以在哪里可以存储此值以在搜索时访问它?您的示例听起来更适合由Solr中的自定义相似性或查询函数处理,而不是作为自定义分析器处理 例如,如果使用Solr 4.0,您可以使用函数按dog出现的次数排序。也可以将其用作过滤器,如下所示:
fq={!frange l=3 u=100000}termfreq(animals,"dog")
这将过滤所有其“动物”字段中至少未出现3次“狗”一词的文档。
使用此方法的优点是,您不影响文档的评分,只对文档进行筛选
自Solr 1.4以来,就存在按函数过滤的功能,因此即使您使用的是Solr的早期版本(>1.4),您也可以自己轻松编写“termfreq”函数查询“Solr 4.0尚未发布。”@denys,我知道,但您可以自己非常轻松地构建该函数,因为IndexReader包含您需要的所有数据(术语频率,文档频率…)我编写了这样的函数,但我在[问题]()