我正在使用 Couchbase 5 和 Go Lang 1.11,尝试根据精确值查询结果。
下面的代码查找状态为“可用”和“不可用”的行。我怎样才能让它只返回“可用”行?
qp.And(cbft.NewConjunctionQuery( cbft.NewMatchQuery("Available").Field("status") ))
最佳答案
这将取决于您如何分析输入字段,了解您使用的分析器会有所帮助,但我现在假设默认的“标准”分析器。
在这种情况下不要使用默认分析器。正如马特在他的评论中所问的那样,您正在尝试对短语中的精确文本进行直接匹配,这与大多数文本搜索用户略有不同。所以你真的不希望文本被标记为更小的部分。
使用“单一”tokenizer 的 Couchbase 搜索 GUI 创建自定义分析器这样字段中的所有文本将保持在一起。或者您可以使用“关键字”分析器,它可能对您来说足够接近。将其设置为您的默认分析器,您的查询应该会按预期工作。
如果您正在寻找另一种方法,那么 term or term phrase query可能更多的是你所追求的,但你仍然必须意识到分析器是如何工作的。
关于go - Couchbase 精确值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52610544/