У меня есть экземпляр SOLR с миллионами документов. Схема хорошо определена (то есть все поля напечатаны). Весь поиск / огранка и т. Д. Работает без проблем.
Однако я пытаюсь сделать что-то новое, что, как мне кажется, не поддерживается в текущей версии. Я использую SOLR 3.5 в Windows, используя Jetty.
Чтобы упростить вопрос, мой документ содержит несколько полей, таких как:
Id,
Название,
Город,
JobTitle
Допустим, у меня есть пример данных, таких как:
П Вуд, Лондон, директор
Джей Смит, Лондон, руководитель проекта
D Lock, Брайтон, разработчик
K Pracy, Лондон, разработчик
Для примера предположим, что это подходящая система, которая позволяет людям находить друг друга. Также предположим, что Id является уникальным Id.
Я хочу написать «выборочный» запрос, который должен найти мне набор записей, который будет соответствовать другим записям по любым критериям.
Так, например, я хочу определить такие критерии, как:
Найдите мне людей, которые будут сопоставлять людей в разных городах с разными названиями должностей:
Если вышеуказанная схема была таблицей RDBMS-SQL (скажем, People), приблизительный запрос будет выглядеть примерно так:
SELECT P.Id,
(
SELECT COUNT(1)
FROM People PI Where PI.Id != P.Id
AND PI.City != P.City
AND PI.JobTitle != P.JobTitle
) AS FindCount
FROM
People P
Ну, запрос может не работать, но вы поняли идею. В любом случае, существуют и другие требования, чтобы Findcount был больше x и меньше y.
Может кто-нибудь сообщить мне, возможно ли это в SOLR или это не для SOLR. Я знаю, что SOLR 4 поставляется с оператором Join, но мне это больше походит на предложение IN, которое ограничивает использование. Например, предположим, что я хочу, чтобы совпадающие идентификаторы также были указаны выше в запросе, а не в счетчиках.