顶点匹配引擎拒绝列表是如何工作的?
假设我有一个类水果,只有拒绝列表标记(不允许),如“苹果”、“芒果”等。如何过滤掉查询中的“芒果”(搜索除芒果之外的所有水果)?我尝试过以下方法,但它不像预期的那样工作:
杰森:
{"id": "1", "embedding":[0.002792,0.000492], "restricts": [{"namespace": "fruit", "deny": ["mango"]}]}查询代码:
deny_namespace = match_service_pb2.Namespace()
deny_namespace.name = "fruit"
deny_namespace.deny_tokens.append("mango")
request.restricts.append(deny_namespace)我编写了类似于允许列表的代码,它对我起了作用,但是对于拒绝标记,即使在完全覆盖索引之后,它似乎也不会跳过拒绝标记。
仅将字段“拒绝”更改为“允许”工作,但“拒绝”不能按预期工作(但不会抛出任何错误)。
全码
查询
https://gist.github.com/niladridutt/673d4aa2a6225fa47d8aad7398b4cbd1
原始文件-
https://gist.github.com/niladridutt/746833b8d61ec366c8c61de57c784ac4 https://gist.github.com/niladridutt/31e9dc3432e206589729989acddf1225
发布于 2022-09-07 10:30:20
GCP在他们的文档中似乎有一些问题,或者这可能是一个bug。显式地在“拒绝”字段中添加值不起作用。对我起作用的是在“允许”字段中放置相同的值,并在查询过程中添加要在拒绝令牌列表中拒绝的值。
https://stackoverflow.com/questions/73565771
复制相似问题