c# – Lucene .NET的多短语同义词

c# – Lucene .NET的多短语同义词,第1张

概述参见英文答案 > Synonyms using Lucene                                    3个 我有一个使用lucene.Net的应用程序,我无法使用Lucene的同义词功能在搜索短语/术语中使用多个单词 例如,如果我想搜索单词“superman”并设置了同义词: “蜘蛛侠”我希望(并且确实)取回与“蜘蛛侠”以及“超人”相关的结果 现在我想要的是搜索“正义 参见英文答案 > Synonyms using Lucene                                    3个
我有一个使用lucene.Net的应用程序,我无法使用Lucene的同义词功能在搜索短语/术语中使用多个单词

例如,如果我想搜索单词“superman”并设置了同义词:
“蜘蛛侠”我希望(并且确实)取回与“蜘蛛侠”以及“超人”相关的结果

现在我想要的是搜索“正义联盟”,并将该术语的同义词设置为“复仇者联盟”.

并且还说“超人”和同义词“正义联盟”.

你有点得到我要去的地方.
我想总结一下能够设置多个短语的同义词.
我知道同义词确实是1个单词到1个单词,但有没有任何自定义方法与Lucene.NET或Lucene本身一般人们用来解决这个问题.
我听说lucene正在添加这个功能,但到目前为止我还没有看到任何东西,同时环顾四周我发现有用.

谢谢
埃德

解决方法 看看 solr.SynonymFilterFactory

请记住,虽然SynonymFilter会很乐意使用包含多个单词的同义词(例如:“sea biscuit,sea biscit,seabiscuit”).处理这样的同义词的推荐方法是在索引时扩展同义词.这是因为在查询时可能会出现两个潜在的问题:

> Lucene queryParser在向分析器提供任何文本之前在空白区域上进行标记,因此如果一个人搜索单词sea biscit,分析器将单独给出单词“sea”和“biscit”,并且不会知道它们匹配a代名词.>短语搜索(即:“sea biscit”)将导致queryParser将整个字符串传递给分析器,但如果SynonymFilter配置为扩展同义词,那么当queryParser从分析器获取结果的标记列表时,它将构造一个不具备所需效果的MultiPhrasequery.这是因为分析仪可用的机制有限,表明两个术语占据相同的位置:没有办法表明“短语”占据与术语相同的位置.对于我们的例子,得到的MultiPhrasequery将是“(sea | sea | seabiscuit)(饼干| biscit)”,这与文档中出现的“seabiscuit”的简单情况不符

总结

以上是内存溢出为你收集整理的c# – Lucene .NET的多短语同义词全部内容,希望文章能够帮你解决c# – Lucene .NET的多短语同义词所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存