小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《Couchbase 精确值匹配》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
问题内容我正在使用 couchbase 5 和 go lang 1.11,尝试根据精确值查询结果。
下面的代码查找状态为“可用”和“不可用”的行。如何让它只返回“可用”行?
qp.And(cbft.NewConjunctionQuery( cbft.NewMatchQuery("Available").Field("status") ))
解决方案
这取决于您如何分析输入字段,这将有助于了解您正在使用的分析器,但我现在假设使用默认的“标准”分析器。
在这种情况下不要使用默认分析器。正如马特在他的评论中所问的那样,您正在尝试对短语中的精确文本进行直接匹配,这与大多数文本搜索用户略有不同。因此,您并不真的希望将文本标记为更小的片段。
使用 Couchbase 搜索 GUI 创建一个自定义分析器,该分析器使用“单个”tokenizer,以便字段中的所有文本都保留在一起。或者您可以使用“关键字”分析器,它可能对您来说已经足够接近了。将其设置为默认分析器,您的查询应该按预期工作。
如果您正在寻找另一种方法,那么 term or term phrase query 可能更适合您,但您仍然需要了解分析器的工作原理。
今天关于《Couchbase 精确值匹配》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!