0

我有一个SP使用FTS(全文搜索)。我希望跨多个字段进行搜索,根据我分配的权重“智能”排列结果。FTS:智能搜索多个领域

考虑搜索从表中获取数据的视图:Book,Author和Genre。

现在,我想搜索者能够做到:“卢德伦小说”,“罗伯特·卢德伦谍影重重”,“谍影重重卢德伦”等

不幸的是,唯一的办法我已经能够做到这一点目前是这样的:http://pastebin.com/fdce11ff

这是非常糟糕的,因为我手动分解搜索字符串。我知道我这样做完全是错误的方式,但无法找出权利方式在FTS中的多个字段进行搜索。有人可以帮忙吗?

+0

什么让你觉得你现在做的方式是错误的? – 2009-12-07 18:20:17

+0

那么,我不得不自己编写排名算法,并假设FTS会有更优化的算法?另外,我没有得到期望的结果。例如,如果你知道我的意思,那么搜索“Al Pacino”就会得到“Al Author”的结果“Al Something”,而不是“Al Pacino”。这是因为在书的标题和作者字段中重复了'Al'这个词。 – 2009-12-07 18:30:23

回答

0

在你的实例上;你的字典是如何设置的?您可能希望将您的作者添加到您的字典中,这可能会解决al pacino问题(也请确保您的作者不是噪音字词。)

您可能会从使用vector type搜索的深度搜索中获得更好的结果。我们已经推动我们的用户(这是内部员工)朝着布尔搜索的方向发展,正如谷歌所要求的。例如Robert Ludlum和伯恩。

+0

嗨,请参阅http://stackoverflow.com/questions/1875237/full-text-search-noise-words-are-being-searched-为了看到我面临的这个问题。 我已经为此打开了另一个问题,因为我不确定它是否相关。 – 2009-12-09 16:59:55