2012-08-31 5 views
0

Lucene을 내 안드로이드 앱에서 검색하는 데 사용하고 있지만 복잡한 쿼리를 실행할 때 용어에 대한 오프셋을 반환하지 않습니다. 예를 들어복잡한 쿼리에 대한 오프셋을 반환하지 않는 Lucene

:

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

내가 뭔가를 놓치고 각 필드에 저장하고 무엇인가? 오프셋을 얻기 위해 쿼리에서해야 할 일이 있습니까?

감사합니다.

+0

어떻게 오프셋을 검색하려고합니까? – jpountz

+0

필자는 내용에 대한 TermVector를 가져오고 쿼리의 각 용어에 대한 오프셋을 요청합니다. – Ge3ng

+0

@jpountz 내가 필요한 질문에 고마워. – Ge3ng

답변

0

personid을 사용하여 용어의 콘텐츠 필드에서 오프셋을 얻으려고하면 오프셋이 반환되지 않습니다. 그런 다음 검색어에서 전체 용어 목록을 반복하지 않으면 검색어의 콘텐츠 용어에 도달하지 못합니다. 따라서 오프셋은 반환되지 않습니다.

관련 문제