10/10/2018, 09:53

Công cụ search cho web php tốt nhất.

Các bạn cho hỏi, hiên nay công cụ search trong database nào tốt nhất cho web php. Mình tìm trên mạng, 1 số hướng dẫn làm công cụ search, nhưng kết quả không tốt lắm. Ví dụ muốn search 1 cụm từ (5 từ), nhưng mình muốn nó hiện cả kết quả có chứa không nhất thiết cả 5 từ, nhưng kết quả không như ý muốn. Các bạn chia sẻ cho mình với.
hoichobiet2212 viết 11:59 ngày 10/10/2018
Cái này dùng điều kiện WHERE LIKE %5 từ%
trunghieuhf viết 12:03 ngày 10/10/2018
cái đấy nó chỉ tìm ở bao nhiêu ký tự đầu thôi, mình muốn hỏi là, ví dụ từ khóa là: a b c d e, thì ở kết quả tìm kiếm nó có thể tìm với các từ khóa: a b d, b c d, ...
thuyduongcd viết 12:09 ngày 10/10/2018
Cái đó thì có gì mà khó
Dùng hàm explode tách chuỗi keyword ra thành mảng các keyword độc lập.
Code:
      //change text into array of words and phrases
      function ProcessNeedle($text)
      {
       $output = array();
       $output2 = array();
       $arr = explode('"',$text);

       for ($i=0;$i<count($arr);$i++)
       {
           if ($i%2==0)
           {
            $output=array_merge($output,explode(" ",$arr[$i]));
           }
           else $output[] = $arr[$i];
       }
       foreach($output as $word) if (trim($word)!="") $output2[]=$word;
       return $output2;
      }
Sau đó dùng foreach để nối các keyword nay với từ khóa OR để hình thành câu truy vấn
Code:
$logic="OR"; //tìm với bất cứ từ nào; "AND": tìm tất cả các từ
$sql="SELECT column FROM tablename WHERE";
        if ($logic=="OR") $sql.=" 0";
        else $sql.=" 1";
        foreach ($words as $word) $sql.=" $logic LIKE '%$word%'";
$result=mysql_query($sql);
Vậy là xong, cần gì công cụ
trunghieuhf viết 12:01 ngày 10/10/2018
Vậy, ngoài việc search theo keywork, thì còn cần thêm những phương thức nào search hiệu quả hơn không, bạn nào hiểu sâu về vấn đề này trả lời mình với.
lucky-boy viết 11:57 ngày 10/10/2018
Bạn có thể nghiên cứu về Lucene Search.
luckyluck viết 12:07 ngày 10/10/2018
sphinx phù hợp hơn Lucence, Rongbay sử dụng sphinx.
Lucence được viết bằng java, nên muốn sử dụng PHP thì phải sử dụng zend framework
Khoe Sắc viết 11:57 ngày 10/10/2018
tớ dùng .net, chơi lucenet.net cực ngon
trunghieuhf viết 11:55 ngày 10/10/2018
Hiện tại mình dùng code php search database bằng thuật toán:
+ Khi nhập từ khóa là: "a b c d e" thì mình tách nó thành từng từ rồi đối sánh với kết quả trong database search.sql, nếu có từ nào giống thì in ra.
+ file search.php có các khóa là: keyword, tieudebaiviet,..., count
+ Theo như cách của mình đang làm, thì khi đối sánh từ khóa với keyword, gặp từ nào giống là in ra. Điểm bất lợi của cách này là dù kết quả có 1 từ giống nó cũng in ra --> kết quả không chính xác.
==> Mình muốn sử dụng thêm biến count để đếm số lần các ký tự(keyword) của tieudebaiviet xuất hiện trong từ khóa, như vậy in kết quả theo count sẽ chính xác hơn, các bạn giúp mình với. Mà cho hỏi luốn nếu làm vậy, với data lớn thì có làm chậm tốc độ search không?
aragongball viết 12:00 ngày 10/10/2018
tìm kiếm trong php.cách làm phổ biến nhất là tách cái cụm đó ra rùi tìm kiếm thôi.Chỉ có điều là nó hơi chậm.Vì thế trong thuật toán nên tối ưu lại mã code để ít phải sử dụng nhiều hàm.Mục đích đến đích mà.đi đường nào nhanh nhất thì đi thôi
Bài liên quan
0