Можно ли сделать Lucene запросы на свежем воздухе, которые находят узлы на основе их родительских / дочерних свойств - PullRequest
4 голосов
/ 07 февраля 2011

возможно ли сделать запрос Lucene на свежем воздухе, который находит узлы на основе их родительских / дочерних свойств? Например, я хочу найти все узлы, у которых свойство "foo" установлено в "1" и имеют узлы, связанные с ними дочерней ассоциацией со свойством "baz", установленным в "2" (возможно, указав как-то имя их детская ассоциация)

что-то вроде

@crl\:numeroAtto:"6555" AND @crl\:firmatario:"Marco rossi"

Где "NumberroAtto" - это свойство родительского узла, а "Firmatario" - это свойство дочернего элемента. Тип ассоциации "firmatari" (его нет в запросе, потому что я не знаю, как его использовать)

Чтобы быть еще яснее, я пытаюсь сказать Люцену: «Найдите все узлы, для которых свойство Nero: значение 6555 и дочерние элементы (тип ассоциации с дочерними элементами: firmatari) со свойством« Firmatario », установленным в Marco Rossi .

Спасибо заранее

Ответы [ 2 ]

5 голосов
/ 25 марта 2011

Вы не можете искать по ассоциациям, поэтому мы не строим медленные запросы.Но добавьте новое свойство d: text ассоциации для родительского Type.

, чтобы его можно было искать через Lucune.Чтобы сделать его полностью работоспособным, создайте поведение Java, которое проверяет обновление содержимого.И когда «ваша» ассоциация найдена, она добавляет ее в свойство d: text.

Таким образом, поиск в lucene происходит очень быстро.

4 голосов
/ 16 февраля 2011

Прямого способа сделать это не существует.

Другая идея: первая возвращает все родительские узлы, а затем строит поиски на основе корня каждого возвращаемого узла.

...