簡體   English   中英

在單個單詞的MySQL列上進行布爾模式搜索

[英]Boolean mode search on column of individual words MySQL

我想在沒有全文索引的情況下對我的表執行布爾模式搜索。 我的數據集需要極高的詳細程度,因此我的文檔中的每個單詞都是它自己的行,而不是每個文檔都是一行。 是否可以將常規索引作為布爾模式搜索的主題,而不是將全文索引(這里顯然沒有用)作為主題?

聽起來您的數據是文檔字結構的。

進行此工作的一種方法是使用標准比較和having子句。 以下將搜索“ wordA”和“ wordB”,而不是“ WordC”:

select DocumentId
from DocumentWords dw
group by DocumentId
having max(word = 'WordA') > 0 and
       max(word = 'WordB') > 0 and
       mac(word = 'WordC') = 0;

如果要使用全文本索引,則可以將文檔連接在一起,例如:

select DocumentId, group_concat(word separator ', ')
from DocumentWords dw
group by DocumentId

將此存儲為單獨的表,並在其中使用全文本索引。

暫無
暫無

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

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