如何将这些信息存储在 Solr 搜索引擎中?
How to store this information in the Solr search engine?
我构建了一个通信器,现在我想给它添加 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, ...],
....
}
所以问题是:我应该如何索引这些数据,我应该如何进行查询?
开始设计前要问的一些问题。从 solr 的角度来看,您可以通过提供搜索词来搜索文档。所以在你的情况下,你认为文件是什么。是对话还是个人消息。大多数情况下,文档类似于实体。所以我想在这里进行一次对话。所以它有一个ID。
接下来是每个对话都有多个消息。我可以看到此消息层次结构有多个级别。你想维护它吗?还是所有的消息都被认为在一个级别下。
然后是查询部分 - 当您搜索时,您是否希望消息或对话计数。当您如上所述设计实体时,无论如何都会决定这一点。
一旦你回答了这些问题,你就可以转向反规范化或嵌套实体(在你的情况下,消息嵌套在对话中)。有了上面的答案,剩下的过程可以在任何 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, ...],
....
}
所以问题是:我应该如何索引这些数据,我应该如何进行查询?
开始设计前要问的一些问题。从 solr 的角度来看,您可以通过提供搜索词来搜索文档。所以在你的情况下,你认为文件是什么。是对话还是个人消息。大多数情况下,文档类似于实体。所以我想在这里进行一次对话。所以它有一个ID。
接下来是每个对话都有多个消息。我可以看到此消息层次结构有多个级别。你想维护它吗?还是所有的消息都被认为在一个级别下。
然后是查询部分 - 当您搜索时,您是否希望消息或对话计数。当您如上所述设计实体时,无论如何都会决定这一点。
一旦你回答了这些问题,你就可以转向反规范化或嵌套实体(在你的情况下,消息嵌套在对话中)。有了上面的答案,剩下的过程可以在任何 solr 文章中找到以索引文档。如果您需要任何进一步的信息,请告诉我。快乐的设计和编码