Mysql tam eşleşmesini optimize nasıl

3 Cevap php

Hey guys, ben daha tam maç arama optimize nasıl hakkında bazı hile biliyor musunuz?

Ben optimize çalışıyorum kodu:

$do = $this->select()
      ->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
      ->order('premium DESC');

Arama bazı şirketler için aramak ... ve en alana name ben var diyelim olmalıdır: Google ve ort alanda ben {[( 3)]}.

google center in new york ve bir sonuç new york tüm google merkezleri yalnızca bana vermek için: Ben böyle bir sorgu yapmak istiyorum!

Ben ne demek istediğimi anlamak umuyoruz!

3 Cevap

sıralamak için alaka kullanın

$do = $this->select("*, MATCH(`name`,`ort`) AGAINST ('{$theString}') AS score")
      ->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
      ->order('premium DESC, score');

Sana bakmak gerektiğini düşünüyorum

Sorgu Sizin türü NATURAL LANGUAGE MODE yerine bir tam metin arama ile daha uyumlu olabilir BOOLEAN MODE.

Eğer boolean modunda "new york, google merkezi" için arama yaparsanız, tüm bu anahtar kelimeler herhangi bir sonuç bulmak, ama ille bu sırayla veya bu kavramları eşleşen edeceğiz.