我正在使用基于 Lucene 的搜索引擎。
例如,我有一个像“name”这样的字段:“blue sky”
我可以使用蓝色或天空进行搜索,但不能使用蓝色。我认为蓝光是蓝色的一部分,为什么我不能搜索蓝光?
我正在使用基于 Lucene 的搜索引擎。
例如,我有一个像“name”这样的字段:“blue sky”
我可以使用蓝色或天空进行搜索,但不能使用蓝色。我认为蓝光是蓝色的一部分,为什么我不能搜索蓝光?
您需要使用通配符 ( blu*
) 或模糊搜索 ( blu~
)。更多信息可在此处获得。
或者,您可以定义一个特殊的映射来满足该需求。例如,在 elasticsearch 中,您可以为字段定义一个edgeNgram分析器。
WildcardQueries 搜索比 termQueries 慢。您也可以使用PrefixQuery。