我正在尝试制作一个搜索工具,它可以搜索给定短语的少量对象(大约1000个,每个对象有大约3个我想要搜索的文本字段)。
我正在尝试寻找一种算法,为我对搜索结果进行排名。许多主题导致模糊匹配和Levenshtein距离算法,但这似乎不适合这种情况(例如,它会说短语“猫和狗”更接近“汽车和齿轮”,而不是“狗和猫”)。
是否有专门的算法/方法来将搜索短语与其他文本块进行匹配,并根据文本相等、搜索短语被包含、单个单词被包含等情况对结果进行排序。我甚至不知道什么是正常情况下合适的。
我通常用c#编写代码。我没有使用数据库。
发布于 2011-12-08 21:07:31
看看Lucene吧。它可以执行所有类型的文本索引,返回排名的结果,以及许多其他的好东西。在C#中有一个实现。对于你的用例来说,这可能有点夸大其词,但它是一项如此优秀和有用的技术,你真的应该去看看它,几乎可以肯定,你会在你的职业生涯中找到很好的用处。
https://stackoverflow.com/questions/8431252
复制相似问题