Büyük veri kümeleri için bir işlem optimizasyonu

0 Cevap php

Şu anda biz PPC reklam için 30million + anahtar kelime ile ilgileniyor bir proje var. Biz Oracle bu listeleri korumak. Biz listeden belirli anahtar kelimeleri kaldırmak gerekir zamanlar vardır. Süreci anahtar kelimeler kaldırılması gerektiğini belirlemek için çeşitli maçı tipi politikaları içermektedir:

  • EXACT, WHERE keyword = '{term}'
  • CONTAINS, WHERE keyword LIKE '%{term}%'
  • TOKEN: WHERE keyword LIKE '% {term} %' OR keyword LIKE '{term} %' OR keyword LIKE '% {term}'

Bir liste işlendiğinde Şimdi, sadece yukarıda listelenen maç türlerinden birini kullanabilirsiniz. Ancak, tüm 30mil + anahtar kelimeler maçlar için geri dönen sonuçlar, maçlar için taranmalıdır. Şu anda bu süreç aramak için anahtar kelime listesinde anahtar kelime sayısına bağlı olarak işlemek için saat / gün sürebilir.

Eğer sürecini optimize etmek konusunda herhangi bir öneriniz var mı bu yüzden çok daha hızlı çalışacak?

UPDATE: Here is an example query to search for Holiday Inn:

SELECT * FROM keyword_list 
WHERE
(
lower(text) LIKE 'holiday inn' OR
lower(text) LIKE '% holiday inn %' OR
lower(text) LIKE 'holiday inn %'
);

http://pastebin.com/tk74uhP4: İşte İZAH çıkışı için pastebin olduğunu

Yararlı olabilecek bazı ek bilgiler. Bir anahtar kelime gibi birden fazla kelime oluşabilir:

  • Bu bir örnek anahtar kelime
  • benim kelimeleri gibi
  • anahtar kelimeler büyük

0 Cevap