【发布时间】:2015-10-12 07:48:42
【问题描述】:
我有 4842 个样本格式的文档 {"ID":"12345","NAME":"name_value","KIND":"kind_value",...,"Secondary":{...},"Tertiary":{...}} 其中“...”是每个对象更多不同数量的键值对
在插入数据之前,我已使用 - db.collection.ensureFulltextIndex("KIND") 将 KIND 索引为全文索引。此外,KIND 只是一个单词字符串。 IE。没有空格
通过 AQL 执行了以下查询:
FOR doc IN FULLTEXT(collection, 'KIND', 'DeploymentFile') RETURN doc --> 耗时 3.54 秒(平均)
FOR doc IN collection FILTER doc.KIND == 'DeploymentFile' RETURN doc --> 需要 1.16 秒(平均)
两个查询都返回了 2944 个对象
第一季度。假设我们使用了全文索引并且我没有对 KIND 进行哈希索引,那么使用 FULLTEXT 函数的查询不应该比正常的 == 操作更快(因为 == 不使用全文索引)。如果是这样,我在这里做错了什么?
第二季度。利用全文索引,我可以执行包含字符串或 LIKE 字符串的查询吗?
---更新 Q2.要求是在父字符串(只有一个单词)中搜索子字符串。子字符串可以位于父字符串中的任何位置。 (SQL 等价于 LIKE '%text%')
【问题讨论】:
-
我已经在笔记本上尝试过查询。使用 arangosh 在 40ms / 56ms 内运行。您使用的是哪个驱动程序?
标签: arangodb full-text-indexing