【发布时间】:2017-02-01 22:06:44
【问题描述】:
我是 Couchbase/AngularJS/Express.js/Node.JS 应用程序的开发人员。应用程序当前状态是用户测试的开始。当用户访问新应用程序时,用户希望从 Couchbase 检索检索以检查效率。用户觉得搜索从 Couchbase 返回的时间太长。作为一个有经验的 SQL 程序员和学习 N1QL,我的 SQL 经验告诉我这个请求是不可行的。
该过程涉及以下内容:
1700 到 1800 个 JSON 文档
预期回报是零或一些文件
所有文件都是不可能的(稍后会解释)。
数据必须穿越大西洋,因为数据和应用程序将驻留在英格兰境内的机器上。
用户将至少输入三个字符来搜索名称,并期望返回包含输入字符的名称列表。请记住,用户输入的字符越多,搜索就越精细。用户问题是返回需要几秒钟。
N1QL 语句如下所示:
SELECT id,
name,
abbr,
meta(bucket).id meta_id
FROM bucket
WHERE type = 'store'
and Upper(name) like Upper('%passedinname%’)
order by name
如果用户输入“ABC”,N1QL 语句将返回存储 JSON 文档名称中包含“ABC”的所有 JSON 文档信息。例如,如果我有名为:
ABC 市场
玛丽的ABC熟食店
两个文件都会返回。正如您可能注意到的,我必须保持搜索不区分大小写。这是根据用户的要求。
我查看了 Couchbase 中的选项。我相信没有可行的方法来提高检索速度。我查看了 Couchbase View。我看不出如何对它应用我的 N1QL 语句。 couch.model.js 脚本只允许从视图中检索。不允许输入非键值的搜索条件。
我查看了 Couchbase 索引。我也看不到如何对它应用我的 N1QL 语句。 N1QL 语句仍需要在每个商店 JSON 文档中搜索“passedinname”。
我什至研究了 Couchbase 全文搜索。我不能使用这个选项。该部门已经制定了一项政策来防止它。
如果您有可能的解决方案,请随时提出建议。我非常感谢所有建议。
TIA 安东尼
【问题讨论】:
标签: couchbase