Lucene没有返回复杂查询的偏移量

时间:2012-08-31 21:06:33

标签: lucene

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

例如:

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

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

+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));

我错过了什么吗?在查询中我需要做些什么才能获得补偿?

感谢。

1 个答案:

答案 0 :(得分:0)

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