Azure认知搜索:仅搜索用户拥有的内容-超过10万个项目

时间:2020-04-17 16:33:21

标签: c# asp.net azure-cognitive-search

我们在网站的仅订户区域,用户可以在其中搜索自己拥有的物品。用户目前最多可以拥有200,000件商品。根据Microsoft的说法,search.in(...)可用于“以亚秒级的响应时间过滤数千个值。”

https://docs.microsoft.com/en-us/azure/search/search-security-trimming-for-azure-search

实现安全过滤的一种方法是通过复杂的等式表达式分离:例如,Id eq'id1'或Id eq'id2',依此类推。这种方法容易出错,难以维护,并且在列表包含数百个或数千个值的情况下,查询响应时间会缩短几秒钟。

一种更简单,更快速的方法是通过search.in函数。如果 您使用search.in(Id,'id1,id2,...')而不是等式 表达式,您可以期望不到一秒的响应时间

将约150k的值传递给search.in(...)大约需要4-8秒才能返回结果,而普通搜索则需要约0.5秒。 search.in(...)可以获取项目ID的列表,并将其与索引中的项目ID(键字段,可过滤)进行比较。

有更好的方法吗?我真的很想将搜索时间缩短至<1秒。

0 个答案:

没有答案