MySQL'de sonuçların indeksinin olası olup olmadığını merak ediyorum. Örneğin, bir kelime veya birden çok kelime olabilecek bir arama terimi kullanıyorum. Örneğin için. "ev" veya "yüksek deniz evi". Şimdi, MySQL'in "yüksek deniz evinin" bir sorguya 3 kez sığmasını indeksleyip merak etmediğini merak ediyorum.Çoklu kelime arama sonuçları MySQL içinde
böyle bir şey düşünüyorum: böylece
select `fields` from `table` where
`searchfield` like 'high' or
`searchfield` like 'sea' or
`searchfield` like 'house' or
ve - ben arama sürecinde nasıl kullandıklarını birçoğu bağlı.
- Ben kaç kelime sığacak bir değerlendirmesini yapmak gerekir ben endeksli ilk
- arama terimden tüm sözcükleri içeren kayıtları gerekir: şöyle
Şimdi arama işlemine sıralamak gerekir arama terimimin her kelimesini aradım.
Herhangi bir fikir?
Çok teşekkürler! olarak boolean değerlendirmeler ya Yani örneğin eğer 1 veya 0 döndürür Çalışıyor
SELECT `fields` FROM `table`, (`searchfield` LIKE '%high%') +
(`searchfield` LIKE '%sea%') + (`searchfield` LIKE '%house%') AS hits
HAVING hits > 0
ORDER BY hits DESC
:
SELECT `fields` FROM `table`, (`searchfield` LIKE '%high%') +
(`searchfield` LIKE '%sea%') + (`searchfield` LIKE '%house%') AS hits
WHERE `searchfield` LIKE '%high%' OR
`searchfield` LIKE '%sea%' OR
`searchfield` LIKE '%house%'
ORDER BY hits DESC
Veya sadece:
tam metin aramasını istiyorsanız: http://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html –
tam metin arama dizini ile elde edebilirsiniz ... ya da sadece ya tarafından desteklenen tam metin dizini myisam motoru 5.5 sürümüne kadar ve avaibale innodb motoru da mysql 5.6 sürümünden itibaren .... 5.6 veya daha yüksek bir sürüm veya myisam motoru kullanıyorsanız @Dagon tarafından sağlanan belgelerini kontrol edin. –
http: // use- the-index-luke.com/sql/where-clause/searching-for-ranges/like-performance-tuning Bu, sorunuza cevap verebilir – Naruto