2014-01-21 29 views
1

可以說我們在文本中有'ABCD1234EF'字樣。現在找到它,我必須匹配確切的單詞。目標是通過'ABCD1234EF','ABCD','1234'或'EF'字符串找到它。不是由'CD12'或類似的東西。參數'ft_min_word_len'設置爲1.MySQL全文單獨的數字和字母?

只有選擇創建第二列並將分隔值存儲在那裏?它可以通過MySQL來完成嗎?

我在MySQL網站http://dev.mysql.com/doc/refman/5.1/en/full-text-plugins.html上發現了一些東西。但它會帶來更多的問題而不是解決問題。

  • 它取代原來的mysql解析器嗎?
  • 如何在Windows機器上編譯它?

回答

0

我認爲最簡單的路線是將您的輸入字符串拆分爲三個獨立的SQL列(也許基於something like this)。

書面方式,自己的全文插件基本上是移動這個邏輯的不確定增加值(reference)低:

主要分析功能,simple_parser_parse(),充當替代內置全文解析器,所以它需要將文本拆分爲單詞並將每個單詞傳遞給服務器。

這也回答了你的第一個問題,子彈:此過程替換全文解析器(不是SQL語法分析程序,如果這是你的問題)。

MySQL compilation instructions提供了Windows特有的步驟。

+0

純粹的SQL方法確實很理想。但我實際上有兩列我需要索引。用多個詞,所有可能的地方都有數字。沒有適用的規則。現在我嘗試在沒有適當工具的情況下編譯插件。仍在學習。類似SQL觸發器的解決方案仍然是首選。任何其他非SQL解決方案也可以工作,但我試圖避免它,因爲它需要我的應用程序進行很多更改。 –