【问题标题】:ArangoDB wildcard search is slowArangoDB 通配符搜索很慢
【发布时间】: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


    【解决方案1】:

    FILTER 不使用索引。要加快通配符查询,您必须在集合上创建 ArangoSearch 视图并使用 SEARCH 关键字。

    请随意查看以下互动教程(请参阅“LIKE 支持”部分): https://www.arangodb.com/learn/search/arangosearch-tutorial-3-7/

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2022-07-08
      • 2012-12-17
      • 1970-01-01
      • 2014-08-08
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多