Azure Cosmos数据库搜索,具有Contains和lower/upper功能
我正在尝试查询cosmosDB,其中希望使用SQL“like”功能搜索名字,同时为了不区分大小写,我正在使用cosmos DBs“lower”函数 e、 g.从c中选择*其中包含(较低的(c.lastName),“abc”)//请求费用=1660+ 我观察到这个查询的请求费用大约是1660+左右,但是当我使用不带“Contains”和“lower”函数的普通查询时,请求费用仅为“8” e、 g.从c中选择*,其中c.lastName=“abc”//请求费用=8Azure Cosmos数据库搜索,具有Contains和lower/upper功能,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我正在尝试查询cosmosDB,其中希望使用SQL“like”功能搜索名字,同时为了不区分大小写,我正在使用cosmos DBs“lower”函数 e、 g.从c中选择*其中包含(较低的(c.lastName),“abc”)//请求费用=1660+ 我观察到这个查询的请求费用大约是1660+左右,但是当我使用不带“Contains”和“lower”函数的普通查询时,请求费用仅为“8” e、 g.从c中选择*,其中c.lastName=“abc”//请求费用=8 请帮助理解是什么导致了申请费用的巨
请帮助理解是什么导致了申请费用的巨大差异 使用
包含的第一个查询实际上是执行自由文本搜索,并且必须扫描所有文档
第二个查询使用精确的匹配,因此只使用索引,成本更低
除实际查询路径的成本外,第一个查询的结果集可能比第二个查询的结果集大得多,因为第二个查询始终包含在第一个查询中,但第一个查询可以匹配更多的结果集,例如abcd、cabcd
如果你想在很多文本栏中搜索,那么有必要从两个选项中选择一个
如果您正在搜索整个单词,但列不太完整
很长一段时间后,您可以将列标记为匹配的字段
更可靠的选择是在中使用Azure搜索
与Cosmos DB的结合
这使用的第一个查询包含
有效地执行了自由文本搜索,并且必须扫描所有文档
第二个查询使用精确的匹配,因此只使用索引,成本更低
除实际查询路径的成本外,第一个查询的结果集可能比第二个查询的结果集大得多,因为第二个查询始终包含在第一个查询中,但第一个查询可以匹配更多的结果集,例如abcd、cabcd
如果你想在很多文本栏中搜索,那么有必要从两个选项中选择一个
如果您正在搜索整个单词,但列不太完整
很长一段时间后,您可以将列标记为匹配的字段
更可靠的选择是在中使用Azure搜索
与Cosmos DB的结合
这是的,第一个查询肯定会有更多的结果,但它运行的成本要高得多,这也会减慢响应速度。我知道它正在扫描整个集合(集合的大小为100万,可以增长到1000万),但有没有更好的方法来处理这个问题,因为我们有一个要求,6-7个字段将成为查询过滤器的一部分(如名字、姓氏、城市、电子邮件等)。是的,第一个查询肯定会有更多的结果,但它运行的成本要高得多,这也会减慢响应速度。我知道它正在进行整个收集扫描(收集规模为100万,可以增长到1000万),但有没有更好的方法来处理这个问题,因为我们有一个要求,6-7个字段将成为查询过滤器的一部分(如名字、姓氏、城市、电子邮件等)。