【发布时间】:2013-08-16 07:39:19
【问题描述】:
让我先说我没有以非常常见的方式使用 Lucene,并解释我的问题是如何有意义的。我正在使用 Lucene 在结构化记录中进行搜索。也就是说,每个被索引的文档都是一组字段,它们具有来自给定集合的短值。每个字段都被分析和存储,分析产生的通常不超过 3 个,在大多数情况下只产生 1 个标准化标记。例如,假设我们为每个文件存储两个字段:文件的路径和 1-5 的用户评分。路径使用 PathHierarchyTokenizer 进行标记,并且评级只是按原样存储。所以,如果我们有一个像
这样的文件path: "/a/b/file.txt"
rating: 3
此文档的路径字段将包含标记“/a”、“/a/b”和“/a/b/file.ext”,并为标记“3”评级。
我希望针对“path:/a path:/a/b path:/a/b/different.txt rating:1”之类的查询对该文档进行评分,并获得 2 的值 -匹配。
我的理解和观察是,文档的分数取决于各种术语指标,并且有许多文档,每个文档都有很多字段,我绝对不会得到简单的整数分数。
有没有什么方法可以按照概述的方式制作 Lucene 评分文档?针对索引运行的查询不是由用户生成的,而是由系统构建的,并且附加了一个可选的过滤器,这意味着它们都有固定形式的几个 TermQuery 加入一个 BooleanQuery,与任何模糊文本搜索完全不同。目前我没有选择用其他东西替换 Lucene,但欢迎对未来的开发提出建议。
【问题讨论】:
标签: lucene