2015-08-03 2 views
0

Я построил коммуникатор, и теперь я хочу добавить к нему поисковую систему Solr.Как сохранить эту информацию в поисковой системе Solr?

Пользователи создают беседы, и каждый разговор содержит одно или несколько сообщений. Сообщения хранятся как узлы в дереве. Например:

1. initial message 
    1.1 reply 
    1.2 another reply for initial message 
     1.2.1 bla bla bla... 
     1.2.2 Lorem ipsum dolorem... 
    1.3 third reply for initial message 

Всегда есть одно начальное сообщение.

Я хочу сохранить в Solr содержание всех сообщений. Я думаю о том хранения данных таким образом:

{ 
    "conversationId_s_lower": <conversation id here>, 
    "messageId_s_lower": <message id here>, 
    "content_txt_en": <message content here> 
    } 

Но мне нужно индексировать и сделать поиск и в свойствах разговора:

{ 
    conversationTitle_txt_en: "...", 
    conversationAccessUsersId: [123, 45, ...], 
    .... 
} 

Таким образом, вопрос: как я должен индексировать эти данные , и как мне делать запросы?

ответ

1

Некоторые вопросы, которые необходимо задать перед началом проектирования. С точки зрения поиска, вы ищете документы, предоставляя поисковый запрос. Итак, в вашем случае, что вы считаете документом. Это разговор или отдельное сообщение. В основном документ аналогичен объекту. Поэтому я предполагаю разговор. Таким образом, у него есть идентификатор.

Далее каждый разговор имеет несколько сообщений. Я вижу, что в этой иерархии сообщений есть несколько уровней. Вы хотите сохранить это? Или все сообщения считаются находящимися на одном уровне.

Затем запрашивающая часть - при поиске вы ожидаете сообщения или количество разговоров. Это решение принято в любом случае при создании объекта, как указано выше.

После того, как вы ответите на эти вопросы, вы можете перейти к денормализации или вложенным объектам (в сообщениях вашего случая вложены под конверсии). С ответами на вышеизложенное, остальная часть процесса может быть найдена в любой статье solr для индексирования документов. сообщите мне, если вам нужна дополнительная информация. Happy Проектирование и кодирование

Смежные вопросы