Klasik etiket(tag) sisteminde, basit gibi görünen bir arama işlemi yapıyorum
aradığım örnek kelime yat
örnek kelime sadece başta, ortada ve sonda geçebiliyor, örnek kelime boşluk içerebiliyor.("motor yat" gibi)
(kelime ortada ise ", kelime, " yani virgülboşlukkelimevirgülboşluk diye geçebiliyor)
tabloda satırlarında içerikleri şöyle;
yat, ara, bul, gel, getir ara, bul, gel, yat, getir ara, bul, gel, getir, yat yatak, ara, bul, gel, getir ara, bul, gel, yatak, getir ara, bul, gel, getir, yatak bayat, ara, bul, gel, getir ara, bul, gel, bayat, getir ara, bul, gel, getir, bayat...şeklindeki satırlarda ben sadece yat kelimeleri olanları bulmalıyım,
yatak, bayat ları bulmamalıyım.
SELECT kelimelerkolonu FROM `tablo` WHERE ( kelimelerkolonu LIKE 'yat' OR kelimelerkolonu LIKE 'yat, %' OR kelimelerkolonu LIKE '%, yat, %' OR kelimelerkolonu LIKE '%, yat' );sorgusu ile istediğimi istediğim şekilde buluyorum satır sayısı epey fazla olduğu için bu sorgu ağır ama sağlam çalışıyor.
aynı sorguyu regexp ile buluyorum tabi bu yukarıdakine göre çok daha ağır çalışıyor.
Fulltext arama konusunda epey kafa yorduğum halde gördüğüm kadarıyla burada fulltext işime yaramıyor zaten bahsi geçen tablo çok sık güncellendiği için doğası gereği fulltext yarardan çok zarar getiriyor.
Geçici tablo açıp işi daha da uzun işlemlerle büyütmek de istemiyorum.
Etiket sistemini değiştirip, örneğin "_yat__ara__bul haydi__gel gel__getir_" gibi yaparsam tek aramada aranan kelime _yat_ diyerek bulabiliyorum, başında sonunda ortasında geçmesi sorunu kalktığından 4 yerine 1 like kullanıyorum ki bu en makul görünen çözüm fakat daha kolay bir yöntem olmalı.
Farklı bir yöntem ile de bu işin yapılabileceğini düşünüyorsanız lütfen fikrinizi yazın.