В Lucene3, как получить данные из нескольких полей равны? - PullRequest
1 голос
/ 11 августа 2011

В lucene3 Как мне получить данные из colA = colB?

Данные:

ID  colA  colB
1    a    b
2    a    a
3    b    c
4    b    b

Требуемые результаты:

ID  colA  colB
2    a    a
4    b    b

Ответы [ 2 ]

0 голосов
/ 15 августа 2011

Не элегантное решение, но вы можете проиндексировать другой столбец colC, который содержит результат сравнения colA = colB.

0 голосов
/ 11 августа 2011

Lucene в настоящее время не имеет встроенной поддержки запросов на соединение.

Большинство решений включают выполнение двух запросов и объединение результатов самостоятельно. Неявное соединение в люцене проливает свет на потенциальные решения.Однако ни одно из этих решений, скорее всего, не будет очень производительным.

С другой стороны, если у вас есть возможность использовать Solr поверх Lucene, версия Solr (4.0) для разработчика только недавно добавила функцию объединения(см. https://issues.apache.org/jira/browse/SOLR-2272)

С помощью решения Solr вы можете легко удовлетворить ваш сценарий использования, запросив следующее:

fq={!join from=colA to=colB}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...