使用edismax处理程序在lucene语法中进行通配符搜索时遇到问题。我从后备箱每晚都有Solr 4.0。
像'computer'这样的常规搜索会返回结果,但'com er'不会返回任何结果。同样,像'co?mput?r'这样的搜索没有结果。唯一类型的通配符搜索工作是具有尾随通配符(例如计算?或计算机)。
我希望能够在开头( puter)和之间(com er)使用通配符进行搜索。有人可以告诉我我做错了什么以及如何解决它。
感谢。
问候,
姆兰。
答案 0 :(得分:5)
除非您激活reverse string filter,否则前导通配符将无效。要在Solr中使用它,请在要使用前导通配符搜索的字段的分析器中添加ReversedWildcardFilterFactory。
对于返回0结果的其他查询,请尝试使用luke查看您的术语的分析方式(存储在索引中)。如果您正在使用它,请不要忘记考虑堵塞的影响。
答案 1 :(得分:0)
使用edismax,领先的通配符没问题。我刚刚重新测试了它。
中期的通配符也没问题。
看起来还有其他错误。你确定你使用的是edismax吗?