认识到失踪的空间

时间:2009-02-27 06:14:51

标签: mysql coldfusion full-text-search

如何识别用户在输入搜索字词时错过了空格?例如,如果用户输入“usbcable”,我想搜索“usb cable”。我在MySQL中进行REGEX搜索以匹配完整的单词。

我有一个表格,其中包含搜索中使用的每个术语,因此我知道“usb”和“cable”是有效的术语。有没有办法构造一个WHERE子句,它将为我提供该术语与字符串部分匹配的所有行?

这样的事情:

SELECT st.term 
FROM SearchTerms st
WHERE 'usbcable' LIKE '%' + st.term + '%'

还是其他任何想法?

2 个答案:

答案 0 :(得分:5)

Text SegmentationNatural Language Processing的一部分,是您在此具体示例中寻找的内容。它用于搜索引擎和拼写检查程序,所以你可能会看到开源拼写检查器和搜索引擎的示例源代码。

拼写检查可能是正确考虑的范例,因为在尝试将其拆开之前,您首先需要知道它是否是合法的词。

- 亚当

答案 1 :(得分:0)

发表在评论中,但我认为提出答案非常重要:

  

该查询不起作用吗? - 西蒙·巴肯

其次是:

  

好吧,我应该先测试一下   发布。该查询不起作用,但是   它有一个CONCAT,就像这样:WHERE   'usbcable'喜欢Concat('%',st.term,   '%')。我认为这是最简单的,   和最相关的(具体到我的   网站),方式去。 - arnie0674

当然比这个应用程序的文本分割容易得多......

- 亚当