我正在设计一个 Lucene 搜索索引,其中包括每个文档的排名标签。
例子:
Document 1
tag: java , rank 1.2
tag: learning, rank 2.1
tag: bugs, rank 1.2
tag: architecture: rank 0.3
标签来自自动分类算法,该算法也分配了分数。
如何设计索引以便查询标签组合并返回最相关的结果?例子,搜索java+learning
我最初为每个标签创建了一个 FIELD,并使用排名来提升每个文档的字段。就性能而言,这是一个好方法吗?如果我有 10,000 个可能的标签怎么办?在 Lucene 中拥有 10,000 个 FIELDS 是个好主意吗?
Field tag = new Field(
FIELD_TAG+tag.getId(),
"y",
Field.Store.NO,
Field.Index.NOT_ANALYZED);
tag.setBoost(tag.getRank());
luceneDoc.add(tag);
如果我改为将所有标签添加到同一字段,我如何考虑排名?