首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure搜索中的个性化搜索

问Azure搜索中的个性化搜索
EN

Stack Overflow用户
提问于 2017-09-09 09:19:19
回答 1查看 175关注 0票数 0

我正在寻找Azure搜索信息服务。非常简单,我们有一个(运行.NET)和SQL上的两个表:

  • 信息:身份,主体,身体,..。
  • MessageRecipient: Id,MessageId,UserId,

一条消息有1:N个收件人。

我想要一个索引来搜索消息的主题和正文,但是结果必须在当前用户是消息的接收者时被过滤。我似乎找不到一个很好的方法来实现这一点,所以它可以很好地扩展到高容量。从索引中返回所有搜索结果,然后在我的应用程序中对UserId进行过滤,将产生许多不必要的开销。为每个UserId复制的每条消息建立索引甚至更糟糕。

如何最好地实现收件人筛选的邮件搜索?

谢谢,TGM

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-09 12:18:53

在类似的情况下,我在搜索索引中使用了Collection(Edm.String)数据类型。因此,索引中的示例文档如下所示:

代码语言:javascript
复制
{
    messageId : 1,
    subject : "Why Azure Search is cool",
    body: "Just because",
    recipientIds : ["123", "456", "789"]
}

recipientIds字段定义为索引架构中的类型集合(Edm.String)。

然后,您可以使用“任意”和“所有”OData表达式来筛选搜索。因此,如果要查找发送给收件人id 123的消息,筛选器表达式将如下所示:

代码语言:javascript
复制
$filter=recipientIds/any(r: r eq '123')

有关更多细节,请参见Azure搜索OData表达式文档。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46129109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档