在SOLR中使用我自己的单向字典查询替换("您的意思是")

时间:2017-05-29 08:51:39

标签: solr

我有一个TXT文件(我根据一些统计分析创建),其中包含从错误的查询到正确查询的映射。例如:

citroen xsara pikasso -> citroen xsara picasso
jamaha -> yamaha
leahter trousers -> leather trousers
a stationery vehicle -> a stationary vehicle
a stationary spplier -> a stationery supplier
a stationary suplier -> a stationery supplier

我正在寻找一种方法来执行以下操作:如果用户输入此文件左侧的查询,SOLR应建议将其替换为右侧的查询 - 手边。

我读过有关FileBasedSpellChecker(https://wiki.apache.org/solr/FileBasedSpellChecker)但它只允许使用单词字典而不是映射。我还阅读了SynonymFilterFactory,它需要一个地图文件(https://doc.lucidworks.com/fusion/2.4/Collections/Synonyms-Files.html),但它只是让SOLR搜索地图文件右侧的短语 - 它不提供建议。所以没有一个插件可以用于我的情况。

是否有插件可以执行以下操作:if query ==" A"然后建议" B"?

1 个答案:

答案 0 :(得分:0)

您检查了SuggesterComponent吗?具体来说,你可以查看FileDictionaryFactory

从你的例子中,听起来你不想要“建议”,这听起来更像是查询重写。但是,如果我们采用您之前的示例并仅突出显示查询中的差异:

citroen xsara **pikasso** -> citroen xsara **picasso**
**jamaha** -> **yamaha**
leahter trousers -> leather trousers
a **stationery** vehicle -> a **stationary** vehicle
a stationary **spplier** -> a stationery **supplier**
a stationary **suplier** -> a stationery **supplier**

你看,基本上,你建议使用相同的查询,只更改一些拼错的单词/术语,这可以使用Suggester / Spellchecker实现,只添加你在外部找到的“正确的拼写术语”统计过程,而不是完整的查询。

相关问题