3
我有一個MyISAM
表包含超過200萬條記錄,其上有多個列的FULLTEXT
索引。如何使用mysql全文獲取連續詞的頻率
給定一個搜索項,我想知道它在每個記錄的索引字段中出現多少次。
例如,下面的表中搜索'test'
時(在其中有一個FULLTEXT
指數超過兩個FREETEXT
和Third_Col
列):
+----+--------------------------------------------+---------------------------+ | ID | FREETEXT | Third_Col | +----+--------------------------------------------+---------------------------+ | 1 | This is first test string in test example. | This is first test Values | | 2 | This is second test. | This is sec col | +----+--------------------------------------------+---------------------------+
我期望類似的結果:
+----+-------+ | ID | count | +----+-------+ | 1 | 3 | | 2 | 1 | +----+-------+
我知道在FULLTEXT
索引中,MySQL使用dtf(術語出現在文檔中的次數);怎麼能得到這個?
的DTF不在全文索引,請使用此本身,因爲它已經[與其他因素結合](http://dev.mysql.com/doc/internals/en/full-text-search.html)來創建一個詞彙權重。您可能會發現從相關性分數和每個文檔的已知術語權重中獲得qf更容易,但即使這樣做也會遇到問題。也許你可以在你想要完成的東西背後提供更多的背景知識?這聽起來像是[XY問題]的發生率(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – eggyal
特別是,數據(甚至是搜索項)的靜態是如何的?您預期的200萬條記錄中有多少比例可能與搜索字詞匹配?你將如何處理所有結果?您是在尋找純粹的SQL解決方案,還是可以使用其他工具? – eggyal
我有一個重要條款清單(超過10,000與同義詞,例如:測試,測試;;不使用證詞),我想找到那裏頻率在一個數據庫有超過2百萬條記錄。這些條款可以匹配任意數量的記錄。搜索項和數據庫是靜態的(不會更改)。我正在尋找快速解決方案(我已經用多個FULLTEXT索引構建了我的數據庫)。因爲我可以使用FULLTEXT索引在每個術語的1分鐘內獲得我的術語出現在完整數據庫中的ID(記錄標識符)。但我想要的頻率以及我將在後面的部分中使用。 – Sapan