Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Azure Search中的实体不断变化时,该怎么办?_Azure_Azure Cognitive Search - Fatal编程技术网

当Azure Search中的实体不断变化时,该怎么办?

当Azure Search中的实体不断变化时,该怎么办?,azure,azure-cognitive-search,Azure,Azure Cognitive Search,我正在开发一个类似聊天的应用程序,并希望为其提供搜索功能。我正在考虑使用Azure搜索。一次可能是在Azure搜索中将每个聊天室视为单个实体,以便每个实体代表一个聊天室。我遇到的挑战是,每个聊天室都不断接收新消息,而聊天室的索引也不断变化。我可以在Azure搜索中使用队列机制来排队更改和更新我的实体,但我不知道这是否是一个好的、可扩展的解决方案。显然,我需要增加副本的数量以跟上变化。有什么建议吗?Azure search是否适合这种情况 我们确实有客户将我们用于基于聊天/即时消息的应用程序,因此

我正在开发一个类似聊天的应用程序,并希望为其提供搜索功能。我正在考虑使用Azure搜索。一次可能是在Azure搜索中将每个聊天室视为单个实体,以便每个实体代表一个聊天室。我遇到的挑战是,每个聊天室都不断接收新消息,而聊天室的索引也不断变化。我可以在Azure搜索中使用队列机制来排队更改和更新我的实体,但我不知道这是否是一个好的、可扩展的解决方案。显然,我需要增加副本的数量以跟上变化。有什么建议吗?Azure search是否适合这种情况

我们确实有客户将我们用于基于聊天/即时消息的应用程序,因此我们可能适合您的需要。在我回答你的问题之前,你能告诉我你想搜索什么类型的东西吗

它仅仅是搜索聊天室还是同时搜索聊天室以及聊天室中的消息?如果只是搜索聊天室,你可能想考虑你建议的方法,然后将聊天消息存储在较低成本的商店(如Azure存储)中,然后简单地按需插入消息文本。p> 如果是后者,那么下一个问题是,你是否希望能够在聊天室和聊天室中的消息之间进行搜索,这表明将聊天室和聊天室中的消息放在一个索引中非常有意义,尽管无论您是将所有消息放在一个文档中,还是将每条消息都放在一个文档中,我们都应该进一步深入研究。我认为,将所有消息都放在一个索引中的主要问题是,用户希望钻取(或过滤)聊天室中的特定消息。我想如果你把邮件分割成单独的文档,这可能会有点困难

另一个选项可能是有2个索引。一个是有聊天室的,另一个是有个人信息的

在任何情况下,我希望这有助于作为一个开始,并根据您的回答,希望我可以帮助您深入了解更多的细节

利亚姆

我们确实有客户将我们用于基于聊天/即时消息的应用程序,因此我们可能适合您的需要。在我回答你的问题之前,你能告诉我你想搜索什么类型的东西吗

它仅仅是搜索聊天室还是同时搜索聊天室以及聊天室中的消息?如果只是搜索聊天室,你可能想考虑你建议的方法,然后将聊天消息存储在较低成本的商店(如Azure存储)中,然后简单地按需插入消息文本。p> 如果是后者,那么下一个问题是,你是否希望能够在聊天室和聊天室中的消息之间进行搜索,这表明将聊天室和聊天室中的消息放在一个索引中非常有意义,尽管无论您是将所有消息放在一个文档中,还是将每条消息都放在一个文档中,我们都应该进一步深入研究。我认为,将所有消息都放在一个索引中的主要问题是,用户希望钻取(或过滤)聊天室中的特定消息。我想如果你把邮件分割成单独的文档,这可能会有点困难

另一个选项可能是有2个索引。一个是有聊天室的,另一个是有个人信息的

在任何情况下,我希望这有助于作为一个开始,并根据您的回答,希望我可以帮助您深入了解更多的细节


利亚姆

感谢@Liam详尽的回答。事实上,搜索字符室和消息是最终目标。让我们先考虑搜索聊天室,把聊天室的所有信息保存在一个单独的实体中。因为会有很多消息,所以单个聊天室的索引应该不断更新。对搜索服务没有太大影响吗?实现它的最佳方法是使用服务总线类型的队列,然后使用工作者角色更新每条消息的索引吗?我的另一个问题是关于索引器的?我仍然可以使用索引器并对其进行自定义,以便它根据我的需要更新索引吗?考虑一下聊天室标题或成员也可以得到更新的情况。顺便说一下,我没有得到你在Azure表中存储消息的建议。o您的意思是将邮件存储在永久存储器中,并使用计划索引器将其拉至Azure search?您好,H.Z.,将聊天室中的所有邮件存储在同一文档中可能不是一个好主意,因为1)您无法捕获每封邮件的元数据,例如发件人,2)由于聊天室中可能有大量的消息,您最终将达到实际的文档大小限制。将每条信息存储为单独的文档似乎是一个更灵活的计划。我完全同意尤金的观点。对于第一个问题,向搜索服务添加内容确实会对整个服务产生影响。这并不是我们限制了您,而是您拥有的搜索单元拥有有限的资源,这些资源需要由数据摄取和搜索查询共享。您是否预计每秒查询(搜索)和更新(新消息)的数量?请知道,我们可以扩展得相当高,如果需要,可以分配更大的搜索单位。感谢@Liam提供详细的答案。事实上,搜索字符室和消息是最终目标。让我们先考虑搜索聊天室,把聊天室的所有信息保存在一个单独的实体中。因为会有很多消息,所以单个聊天室的索引应该不断更新。不