lucene - возвращает все документы, относящиеся к одному полю, и сортирует их по релевантности другого - PullRequest
0 голосов
/ 02 января 2012

мне нужно иметь возможность искать всех членов определенной группы (идентифицированных общим полем groupId) и возвращать их по релевантности другому полю (description)

, что означает,допустим, у меня есть следующие проиндексированные документы:

name="a" groupId="445" description="lives in a blue house"
name="b" groupId="445" description="has a green car"
name="c" groupId="445" description="likes blue flowers"
name="d" groupId="445" description="his eyes are brown"
name="e" groupId="445" description="her table is light-blue"

, и я хочу получить их все по идентификатору (groupId:445 AND ...), а затем отсортировать по значению слова «синий» - я бы хотелсначала получим a, b, c , но все же получим остальных (у которых вообще нет слова "синий" в описании), просто с меньшим баллом

как я могудостичь этого?

спасибо!

Ответы [ 2 ]

0 голосов
/ 04 января 2012

я нашел ответ: программное построение запросов (более подробная информация здесь: http://www.lucenetutorial.com/lucene-query-syntax.html)

, когда я добавляю TermQuery в BooleanQuery, я обнаружил, что могу определить его как "ДОЛЖЕН произойти" или "ДОЛЖЕН произойти"«(я думаю, что в синтаксисе запроса он переводится в« + », или его отсутствие перед термином)

подробнее об Occur: http://lucene.apache.org/java/3_4_0/api/all/org/apache/lucene/search/BooleanClause.Occur.html

0 голосов
/ 04 января 2012

То, что вы хотите, это повышение.groupId:445^10 description:blue например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...