我正在开发一个示例API,该API接受要搜索的ColumnNamevalue。 API搜索并以XML格式返回相关结果。我正在使用Lucene的StandardAnalyser。我有一个"Central West*"字段的搜索短语COMPANYNAME。我的数据库中有2条记录,其中COMPANYNAME字段设置为"CentralWest"。当我使用上述搜索词进行搜索时,我得到了这两个记录。
但是,当我用"Central We*"搜索时,没有任何结果。我不知道那是我面临的问题。我读到使用QueryParser是最好的方法。没有办法为StandardAnalyser中的问题提供解决方案,我面临的问题是什么?

最佳答案

您正在使用StandardAnalyzer,但对短语"Central West*"有结果,但对Central We*没有结果。

首先:StandardAnalyzer不会拆分CentralWest。因此,不能将CentralWest与短语“ Central West”(WordDelimiter Filter匹配)匹配。

您很可能正在使用不支持通配符的查询解析器。很少有诸如ComplexPhraseQueryParser之类的带有通配符支持的查询解析器。

如果没有通配符支持,则“ West *”和“ West”之间的StandardAnalyzer不会有所不同,因此您具有匹配项。 We*Wewe相似,因此没有匹配项。

10-06 09:27