按标题和作者搜索书籍

时间:2010-06-02 10:36:23

标签: sql-server-2005 search comparison concatenation

我有一个包含列的表:author firstname,author lastname和booktitle 多个用户通过导入插入数据库,我想避免重复。 所以我想尝试做这样的事情: 我在db中有一条记录: 名:“艾萨克” 姓氏:“Assimov” 标题:“我,机器人”

如果用户尝试再次添加,则基本上是非拆分文本 (不会分成作者姓名,作者姓氏和书签) 所以它基本上是这样的: “艾萨克·阿西莫夫 - 我的机器人” 要么 “阿西莫夫,艾萨克 - 我的机器人” 要么 “我是Isaac Asimov的机器人”

你知道我到达了哪里?

(我不能强迫用户将所有书籍分成作者名字,作者姓氏和书签,我甚至不喜欢强迫用户的想法,因为它不太用户友好)

将所有这些可能的bookdata场景与我在数据库中的内容进行比较的最佳方法(在SQL中)是什么,而不是两次添加相同的书。我在考虑建议用户的可能性:“这是你想要添加的书吗?” (想象一个列表而不是这个词,就像在stackoverflow上一样 - 问问题 - 相关问题。

我在考虑

 soundex

甚至可能是

 like

运营商,但到目前为止我没有得到我希望的结果。

1 个答案:

答案 0 :(得分:0)

您可以为soundex/difference实现明显更好的模糊匹配算法,请查看Beyond SoundEx - Functions for Fuzzy Searching in MS SQL Server

您还可以查看实施全文目录并使用“搜索引擎”样式FREETEXT()

  

是WHERE子句中使用的谓词   搜索包含的列   值的基于字符的数据类型   符合意义而不仅仅是   的确切措辞   搜索条件

根据您的操作,您也可以使用ISBN网络服务来获取规范化数据。