Arangodb 使用前缀的全文查询

Arangodb 使用前缀的全文查询,arangodb,aql,Arangodb,Aql,我正在尝试使用ArangoDB对姓名进行全文查询,我希望能够通过首字母进行搜索,例如搜索“John J.Doe”或“J.Doe”都会返回John James Doe。我设置了索引minLength:1,并尝试使用前缀标记进行搜索,例如“prefix:J,Doe”。不幸的是,这使得搜索速度异常缓慢(超过160万条记录的单次搜索时间为5秒)。这是工作更快,还是长度为1的前缀:查询的预期行为?ArangoDB使用ICU标记器在其边界上拆分单词。 您可以使用SYS\u SPLIT\u WORDS\u I

我正在尝试使用ArangoDB对姓名进行全文查询,我希望能够通过首字母进行搜索,例如搜索“John J.Doe”或“J.Doe”都会返回John James Doe。我设置了索引
minLength:1
,并尝试使用
前缀
标记进行搜索,例如
“prefix:J,Doe”
。不幸的是,这使得搜索速度异常缓慢(超过160万条记录的单次搜索时间为5秒)。这是工作更快,还是长度为1的
前缀:
查询的预期行为?

ArangoDB使用ICU标记器在其边界上拆分单词。 您可以使用
SYS\u SPLIT\u WORDS\u ICU
命令在arangosh中输入其工作:

SYS_SPLIT_WORDS_ICU()
usage: SplitWordlist(<value>, minLength, [<maxLength>, [<lowerCase>]])
这可能是cpu利用率高的原因。最小长度为3似乎是一个很好的折衷方案。
如果您需要某些功能,您必须在应用程序中准备一个特殊的搜索字段,为索引准备文本。

ArangoDB使用ICU标记器在单词边界上分割单词。 您可以使用
SYS\u SPLIT\u WORDS\u ICU
命令在arangosh中输入其工作:

SYS_SPLIT_WORDS_ICU()
usage: SplitWordlist(<value>, minLength, [<maxLength>, [<lowerCase>]])
这可能是cpu利用率高的原因。最小长度为3似乎是一个很好的折衷方案。 如果需要某些功能,则必须在应用程序中准备一个特殊的搜索字段,以便为索引准备文本