Я пытаюсь выяснить, есть ли способ поиска по моим текущим структурам данных или если я должен их перестроить.Поиск по связанным индексам на Algolia
Я следующую структуру для моих показателей:
- Публикация (атрибуты:
id
,title
,keywords
) - PublicationFile (атрибуты:
id
,publication_id
,text
,page_number
)
В публикации есть много файлов публикации, файл публикации содержит содержимое файла и страницу, на которой он был nd in (text
и page_number
).
title
, keywords
и text
- доступные для поиска атрибуты, поэтому, если кто-то ищет «экономию», я хочу выполнить поиск по обоим моим индексам.
Я хотел бы, чтобы выполнить поиск, который ищет в обоих индексах и возвращает результат таким образом, что позволяет мне сделать что-то вроде этого:
Publication1 keyword1 keyword2 Found results in Publication1's file contents in: [file a (pages: 1, 2, 3), file b (pages: 5)]
Так я вроде хочу поиска, что происходит для возврата результатов, сгруппированных по идентификатору публикации. Единственный способ, которым я могу сейчас подумать, - это искать оба индекса, а затем пробивать результаты и связывать совпадения файлов/страниц с публикацией.
В итоге мои вопросы:
- Есть ли способ я могу структурировать свои данные, чтобы избежать вложенных циклов, чтобы обработать его?
- Есть ли способ, которым я могу это сделать через Алголию, не изменяя свою структуру? В идеале я хотел бы повторно использовать код поиска в интерфейсе Algolia и избегать обработки этих данных на моем сервере.
Спасибо! что действительно помогает, мне просто нужно найти способ сохранить данные до 10 КБ на запись. –
На самом деле, перейдя еще раз, мне все равно придется использовать мой сервер для обработки данных для отображения в той же структуре, что и пример в моем вопросе, правильно? Таким образом, похоже, что нет способа избежать этой части, но тогда как я буду разбивать страницы на данные, если я ее обработаю? Я хочу, чтобы в результатах поиска показывались публикации, а также имена файлов/номеров страниц, в которых были найдены результаты. Основным элементом результата является публикация с совпадением файлов, рассматриваемых как подэлементы. –
Я не нашел все равно, чтобы получить именно то, что я хотел, но дедупликация с использованием идентификатора файла позволила мне показать совпадения как в публикации, так и в файле. Я также помещал их в один индекс, похожий на сообщение в блоге, которое вы связали, я использовал 'record_type' и' record_priority', чтобы помочь сортировать результаты таким образом, чтобы это имело смысл для моего использования. Я не получил именно то, что мне нужно от вашего ответа (и, как вы сказали, пока это не представляется возможным), но ваш ответ был лучшим компромиссом в моем случае. Большое спасибо. –