Ben bir kullanıcı sağlanan anahtar kelimeleri ile arama farklı kitaplık seçebileceğiniz bir searchfunctionallity inşa ediyorum. Ayrıca AND operatörü desteklenmektedir. Benim sorunum ben bilgi aramak için çalıştığınızda bu şekilde çarpılır alır ya da üstel artış olur ki?
Ben sonuçları işlemek için bir MySQL veritabanı ve PHP kullanıyorum.
Bir örnek sorgu, bu, okunabilirliği için alınan numune tablenames gibi görünüyor:
SELECT table1.id AS table1_id,
table2.id AS table2_id,
table1.*,
table2.*
FROM table1, table2
WHERE (table1.column1 LIKE '%key%' OR table1.column2 LIKE '%key%') OR
(table2.column1 LIKE '%key%' OR table2.column2 LIKE '%key%')
Bir kullanıcı 'anahtar VE yek' gibi anahtar kelimeler sağlar Ya da sorgular gibi görünecektir:
SELECT table1.id AS table1_id,
table2.id AS table2_id,
table1.*,
table2.*
FROM table1, table2
WHERE ( (table1.column1 LIKE '%key%' AND table1.column2 LIKE '%key%') OR
(table1.colum1 LIKE '%yek%' AND table1.colum2 LIKE '%yek%') )
OR
(( table2.column1 LIKE '%key%' AND table2.column2 LIKE '%key%') OR
(table2.colum1 LIKE '%yek%' AND table2.colum2 LIKE '%yek%') )
Ben civarı arandı ve BİRLİĞİ genelinde geldi, ama bu hile yapmayacağım ettik. Öncelikle çünkü sorgulama ediyorum tabloların eşit değildir ve bu oldukça pahalı bir sorgu. Bu yüzden de searchfunctionallity kullanılacaktır, çünkü çoğu zaman bu bir seçenek değil.
Aslında ben 2 veya 4 sütunlar arasında 5 tablo ve masa başına sorgulama ediyorum. Ben bu yüzden sonucu 1 satır almalısınız ama aslında ben çok daha fazla alıyorum eşsiz bir değere sahip tablolardan birinde bir testrow kurmak. Tüm 5 tablo seçtiğinizde ben 10K üzerinde resultrows alıyorum. Yani benim tahminim sonucu bir yol veya başka çarpılır alır olduğunu. Ben operatörleri AND ve OR ancak bugüne kadar herhangi bir şans olmadan oynadım.
Bir webapp, kullanıcı dostu bir Arama motoru kurmak benim 'arayış' de bana yardımcı olabilecek birisi var mı?