0

我正在使用 Lucene 在我的 android 应用程序中进行搜索,但是当我运行复杂查询时,它不会返回术语的偏移量。

例如:

+content:"word" +(personid:NULL personid:123)
+content:"word" +(personid:NULL)
+content:"word" -personid:123

不会返回“单词”的任何偏移量。

+content:word

将返回偏移量。

这是我在每个字段中存储的内容

 doc.add(new Field(PERSON_ID_FIELD, request.getPersonId(), Field.Store.YES, Field.Index.NOT_ANALYZED));
 // we don't actually store the content here
 doc.add(new Field(CONTENT_FIELD, request.getContent(), Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.WITH_OFFSETS));

我错过了什么吗?我需要在查询中做些什么来获取偏移量吗?

谢谢。

4

1 回答 1

0

如果尝试从内容字段中获取术语的偏移量,personid则它不会返回任何偏移量。然后,通过不遍历查询中的整个术语列表,永远不会到达查询的内容术语。因此不返回偏移量。

于 2012-09-04T14:42:11.680 回答