ArangoDB 使用ArangoSearch LIKE搜索带空格的字符串

c86crjj0  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(187)

我在一个集合上创建了一个ArangoSearch视图,并使用带有通配符w/ LIKE的SEARCH关键字来搜索带有空格的字段,这与MySQL的方式类似。我遇到的问题是,我总是得到一个空集合,即使带有星星大战标题的记录确实存在。
注意,搜索“%星星%”有效并返回结果......只要我添加一个空格并搜索“%star wars%”,查询就会返回空集。
这是查询

FOR d IN imdb_norm
SEARCH ANALYZER(d.name LIKE "%Star Wars%", "text_en")
RETURN d.name

这是运行arango版本3.7.2的结构

laik7k3q

laik7k3q1#

问题是,由于使用text_en,它将字符串分解为单个单词。由于所有空格都被视为分隔符,因此没有单个术语(存储在aragnosearch索引中的词)包含一个空格.如果不需要标记化,请考虑索引词时可以按原样(例如,不进行大小写转换、重音去除等),或者使用identity分析器,或者改用norm分析器。
https://www.arangodb.com/docs/stable/arangosearch-analyzers.html#analyzer-types

相关问题