我在我的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));
我错过了什么吗?在查询中我需要做些什么才能获得补偿?
感谢。
答案 0 :(得分:0)
如果试图从personid
的术语的内容字段中获得偏移量,则不会返回任何偏移量。然后,通过不从查询循环遍历整个术语列表,永远不会到达查询的内容术语。因此,不会返回任何偏移。