顶点匹配引擎拒绝列表是如何工作的?
假设我有一个类水果,它将只具有拒绝列表令牌(不允许(,例如";苹果"芒果";,等等。我如何过滤掉";芒果";在查询中(搜索除芒果外的所有水果(?我尝试了以下方法,但没有如预期的那样工作:
json:
{"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
Proto文件-
https://gist.github.com/niladridutt/746833b8d61ec366c8c61de57c784ac4https://gist.github.com/niladridutt/31e9dc3432e206589729989acddf1225
GCP的文档中似乎有一些问题,或者这可能是一个错误。显式地将";拒绝";字段不起作用。对我有效的是在";允许";字段,在查询期间-在拒绝令牌列表中添加要拒绝的值。