如何在Lucene.Net中使用同义词

s1ag04yj  于 2022-11-07  发布在  Lucene
关注(0)|答案(2)|浏览(197)

我需要lucene来搜索同义词以及实际的关键字。也就是说,如果我搜索“CI”,我希望它搜索CI或“继续集成”。目前我搜索的关键字,我有同义词,并取代他们与“或”的版本,但我怀疑应该有更好的方法来做到这一点。我的方法不适用于复杂的查询,其中你有像“x和y或不是z”这样的东西。

fnatzsnv

fnatzsnv1#

这差不多就是我计划实现这个功能的方式。我计划构建我自己的版本,但后来我遇到了这个网站WordNet.Net,它似乎试图解决构建同义词的问题。Lucene.Net有一个wordnet扩展,它重写了查询,所以我猜这真的是处理这个问题的标准方式。

jv2fixgn

jv2fixgn2#

至少在Java版本的Lucene中,您可以自己编写一个递归函数,该函数挖掘QueryParser将要构建的BooleanQueryQuery对象;每次找到TermQuery时,它都可以将其替换为一个布尔查询,该布尔查询将原始术语与要添加到查询中的新术语进行OR运算。

相关问题