簡體   English   中英

給定一個字符串:如何在MySQL的varchar(1000)列中查找每個單詞(不區分大小寫)而忽略標點符號?

[英]Given a string of words: How to find every word (case insensitive) in a varchar(1000) column in MySQL ignoring punctuation?

我有兩個數據庫ab ,其中有科學論文的標題。 我想將這些數據庫合並到一個數據庫c

  • a可能包含不在b中的標題,反之亦然。
  • 標題可能同時在數據庫ab
  • 字母和標點的大小寫可能不匹配:
    • “這是一個標題。” VS。 “這是一個標題”
    • “這是另一個標題。” VS。 “這是另一個標題”
    • “基於bla的k均值算法。” VS“基於bla的k均值算法”

首先,我想到了在MySQL中使用levenstein距離函數來匹配兩個數據庫中的相同標題,但是在查看數百萬行時,我不知道這樣做是否足夠好。 然后我想到了全文搜索來匹配標題,但據我所知,全文搜索不匹配常用詞,因此在實際上不同的相似標題上,匹配效果不佳。

結果,我不需要100%的匹配過程。 但我想讓比率盡可能高。 有什么建議嗎?

想到的一個想法是創建一個包含文本的搜索列,其中不帶任何標點符號並且使用小寫形式,然后進行比較。

如果您要使用其他語言或平台來與mySQL結合使用,那么在那里進行規范化可能是最容易的事情-我想不出帶有剝離標點符號之類的本機mySQL函數。 確實有可能,但可能僅使用一組非常復雜的REPLACE()調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM