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