Может ли Solr использовать значения полей известного документа в запросе?

Я хотел бы выполнить поиск Solr, используя значения определенных полей проиндексированного документа, которые я могу идентифицировать по его идентификатору. С MLT это как-то возможно, но я бы предпочел обычный парсер запросов. Могу ли я как-то использовать подзапросы для ввода результата подзапроса в основной запрос?

Например, предположим, что я проиндексировал информацию о книгах в solr, где каждый документ представляет книгу с идентификатором, названием и полем автора. Во время запроса у меня есть только идентификатор документа, и я хотел бы искать книги одного и того же автора за один шаг. Возможно ли это без использования МЛТ?


person Martin    schedule 17.03.2014    source источник
comment
Могу я спросить, что вы имеете в виду под «Во время запроса у меня есть только доступный идентификатор документа»? Вы смотрели на механизм огранки на solr? Что вы можете сделать здесь, так это ввести поле id, title и author как разные аспекты, а затем вы можете просто запросить документы с определенными значениями в определенных полях или запросить документ в определенных диапазонах, если ваши данные являются числовыми.   -  person AR5HAM    schedule 17.03.2014
comment
@sam Фасеты великолепны, но в моем случае не помогут, если у меня нет желаемого значения фасета. По сути, у меня есть уникальный идентификатор документа Solr, но у меня нет других данных. Я мог бы выполнить запрос Solr, чтобы получить содержимое нужного поля (кто является автором книги с id=x), а на втором этапе использовать результат для поиска документов с этим значением (книги автора). Вместо этого я пытаюсь сделать это только одним поиском, например, найти все документы типа book, у которых тот же автор, что и у книги с id=x.   -  person Martin    schedule 17.03.2014
comment
вам не нужно иметь желаемое значение фасета. Например, предположим, что у нас есть две книги авторов Джона Смита и Джона Гришама. Когда вы создаете запрос, вы можете указать, что вы ищете все документы, у которых есть автор Джон, и результат от solr будет содержать книги обоих авторов. Разве это не то, что вы пытаетесь сделать? Пожалуйста, поправьте меня, если я не понял, что вы пытаетесь сделать правильно. Я не понимаю, почему вы думаете, что вам нужно иметь точное значение поля. Даже если это так, аспекты все равно решат проблему.   -  person AR5HAM    schedule 17.03.2014


Ответы (1)


Вы можете использовать JOIN.

http://HOST:PORT/CORE/select?q={!join from=author to=author}id:<ID>
person arun    schedule 17.03.2014
comment
Большое Вам спасибо. Я видел обсуждение JOIN на трекере Solr перед тем, как опубликовать свой вопрос, но не знал, что его можно использовать таким образом. - person Martin; 17.03.2014