2

有没有办法通过直接提供术语和术语频率而不是通过分析和/或 TokenStream 来将文档添加到索引中?我问是因为我想对一些我知道术语频率的数据进行建模,但没有要分析的基础文本文档。我可以通过多次重复相同的术语来创建一个(在这种情况下,我也不关心位置或突出显示,只是得分),但这似乎有点不合常理(并且可能比直接提供计数要慢)。

(也在邮件列表中询问)

4

1 回答 1

2

无论如何,您不需要将所有内容都通过分析器来创建文档。我不知道有任何方法可以按照您的要求传递术语和频率(尽管我很想知道您是否找到了一种好的方法),但是您当然可以一次传递IndexableFields一个术语。这仍然需要您多次添加每个术语,例如:

IndexableField field = new StringField(fieldName, myTerm, FieldType.TYPE_NOT_STORED);
for (int i = 0; i < frequency; i++) {
    document.add(field);
}

您还可以后退一步Document,通过使用 any Iterable<IndexableField>、 simpleList等方式完全删除该类,这可能足以使用更直接的方法对数据进行建模。

不确定这是否能让你更接近你正在寻找的东西,但也许是朝着正确方向模糊的一步。

于 2013-07-03T00:16:27.580 回答