【发布时间】:2021-02-03 19:35:37
【问题描述】:
我正在处理以下查询并尝试实现 ArangoDB 通配符搜索。条件非常简单,我想匹配类似于名称或数字字段的记录,并将记录限制为 25 条。查询有效但非常慢,需要 30 秒以上。目标是优化此查询并使其尽可能接近亚秒级。我希望查询的功能类似于 MySQL LIKE 的工作方式,在两侧使用 % 通配符进行匹配。
https://www.arangodb.com/docs/stable/release-notes-new-features37.html#wildcard-search
注意,我注意到的一件事是,在发行说明示例中,他们使用的是 SEARCH,而不是使用 FILTER。
附加信息:
- 名称是字母数字
- 号码将由 8 位数字组成
LET str = CONCAT("%", 'test', '%")
LET search = (
FOR doc IN name_search
FILTER ANALYZER(doc.name LIKE str, "text_en") OR
FILTER ANALYZER(doc.number LIKE str, "text_en")
LIMIT 25
RETURN doc
)
RETURN SEARCH
【问题讨论】:
标签: arangodb