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

如何在Lucene.Net中使用同义词,lucene,lucene.net,Lucene,Lucene.net,我需要lucene搜索同义词和实际关键字。也就是说,如果我搜索“CI”,我希望它搜索CI或“继续集成”。目前,我搜索同义词的关键字,并用“或ed”版本替换它们,但我怀疑应该有更好的方法来实现这一点。我的方法不适用于复杂的查询,比如“x和y或不是z”。这正是我计划实现此功能的方式。我本来打算构建我自己的版本,但后来我偶然发现了这个网站,它似乎试图解决构建同义词的问题。Lucene.Net有一个wordnet扩展,它重写了查询,所以我猜这是处理这个问题的标准方法 至少在Lucene的Java版本中,

我需要lucene搜索同义词和实际关键字。也就是说,如果我搜索“CI”,我希望它搜索CI或“继续集成”。目前,我搜索同义词的关键字,并用“或ed”版本替换它们,但我怀疑应该有更好的方法来实现这一点。我的方法不适用于复杂的查询,比如“x和y或不是z”。

这正是我计划实现此功能的方式。我本来打算构建我自己的版本,但后来我偶然发现了这个网站,它似乎试图解决构建同义词的问题。Lucene.Net有一个wordnet扩展,它重写了查询,所以我猜这是处理这个问题的标准方法

至少在Lucene的Java版本中,您可以自己编写一个递归函数,用于挖掘QueryParser将构建的BooleanQuery查询对象;每次它找到一个TermQuery时,它都可以用一个BooleanQuery替换它,或者用您希望添加到查询中的新术语替换它。

您找到过解决此问题的方法吗?我四处查看,但找不到任何wordnet Lucene.NET模块。(我确实找到了一些断开的链接)。我只是查看了一下,在Lucene.Net Contrib主文件夹中似乎有一些WordNet代码。