我的应用程序使用Lucene 4.1,并提供两种不同的搜索语法,标准查询解析器语法和近似Solr的dismax搜索。Solr现在有了结合了这两种语法的eDismax搜索,这对于我的应用程序来说是完美的,所以我可以提供一个支持这两种语法的单一接口。
但是eDismax在最新版本的Lucene中可用,因为我没有要求/希望为Solr重写我的代码吗?
没有。
当前的EDisMax实现与某些Solr特性绑定在一起,因此可能需要稍微重写一下才能抽出相关的部分。您可以在grepcode(为了更容易导航)(或Apache Lucene SVN用于当前主干)上看到实现(4.7.0)。
SOLR-2368是跟踪实现的原始问题,是开始挖掘实现特定细节的好地方。