我们有一个网站,用户可以在其中输入城市名称。 Lucene.net 2.1.0.3是寻找已经创建的城市的搜索引擎。根据配置,Lucene不承认圣杰罗姆与圣杰罗姆相同,或者菲利普湖与拉菲利普一样。
有关扩大Lucene.Net搜索策略的任何提示吗?
答案 0 :(得分:2)
我已经读过一些关于这种同义词和“听起来像”的内容(读作“我目前没有这方面的经验”)。对我来说,似乎有两个不同的问题:缩写“同义词”和“听起来像”。
听起来像
Soundex是一种较旧的算法,专为“美国”名称的拼写错误而设计。有一种名为“Double Metaphone”的改进算法解决了Soundex的一些投诉。这个库很有前途: http://sourceforge.net/projects/phonetixnet/
缩写同义词
虽然似乎可能有一个通用的同义系统,但我希望“花园城市”可能会得到“Plot Town”或“Patch burg”的同义词。我猜你会用你自己的特定域名同义词来获得更好的结果。
似乎像'Saint'('St。')和'Mount'('Mt')这样的单词最好用同义词来处理。这篇文章提出了一个相当简单的自定义同义解决方案:http://www.codeproject.com/KB/cs/lucene_custom_analyzer.aspx。