假设我们有一个MoreLikeThis查询(或任何其他现有查询)
MoreLikeThis mlt = new MoreLikeThis(reader);
Query query = mlt.Like(some_document);
看起来像这样:
field:term1^2.0 field:term2^1.5 field:term3^0.5
我要做的是更改此查询中特定字词的提升因子值。
例如,我可能希望将term2
的提升因子乘以2
得到:
field:term1^2.0 field:term2^3.0 field:term3^0.5
显然,可以通过将查询转换为字符串以“粗略方式”完成 -
query.ToString()
,手动解析此字符串并搜索term2
,将插入符后面的值乘以2
,将原始值替换为新值,最后将字符串转换回Lucene {{1}对象。
但是,我的问题是如果Lucene已经有一些更优雅和方便的内置工具来编辑现有查询。