java使用Hibernate搜索(Lucene)来查询没有空格的术语,以匹配带有空格的字段值
我有一个带有name
字段的Movie
类。我想匹配电影名称中有空格的查询词,但没有空格
例如:当搜索词为toystory
时,我希望名为Toy Story
的电影出现在结果中
如何编写Hibernate搜索DSL查询
你可以在下面搜索框中键入要查询的问题!
我有一个带有name
字段的Movie
类。我想匹配电影名称中有空格的查询词,但没有空格
例如:当搜索词为toystory
时,我希望名为Toy Story
的电影出现在结果中
如何编写Hibernate搜索DSL查询
# 1 楼答案
解决这个问题的一种方法实际上是索引时间解决方案。可以使用自定义分析器将电影标题作为串联(不带空格)字符串添加到索引中。这样你就可以免费获得你想要的功能
# 2 楼答案
使用
NGramFilterFactory
和LowerCaseFilterFactory
过滤器将分析器添加到Movie
类,然后将此分析器用于名称字段:当搜索词为
Toy Story
时,名为Toy Story
的电影肯定会出现在结果中,只需使用下一个查询: