我在 java spring 项目中使用 com.couchbase.client
maven 依赖项。我通过以下方式从代码中获取 couchbase 文档:
JsonDocument document = bucket.get(id); //matches id case sensitively
但是我有一个新要求。我必须根据 id 的不区分大小写的匹配来获取文档。
例如:
假设 couchbase 有一个 ID 为 heLLo_Doc
当我执行 bucket.get("hello_doc")
时,我希望返回 ID 为 heLLo_Doc
的文档。如果有多个文档具有相同的小写 ID(例如:Hello_Doc
、hEllo_doc
等),我需要获取所有这些文档。
couchbase有没有提供什么方法可以做到这一点?
最糟糕的做法是搜索所有我不想做的可能性。
最佳答案
如果只是想使用KV引擎,则没有这个功能。但是,您仍然可以将您的 ID 的小写版本添加到您的文档中,并通过 n1ql 使用“LOWER”搜索它 https://docs.couchbase.com/server/5.5/n1ql/n1ql-language-reference/stringfun.html#fn-str-lower .
如果您需要带上 ID 的变体,例如“HelloDoc”,您还可以使用具有一定模糊度的全文搜索: https://blog.couchbase.com/fuzzy-matching/
关于java - Couchbase 中不区分大小写的文档 ID 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52853035/