Arama motoru sıkıntılardan

1 Cevap php

Ben bir MySQL veritabanı için bu arama motorunu yapmak için çalışıyorlar. Hiçbir sorun kullanıcı girişi alınırsa, veritabanı sorgulama da gayet iyi.

Ben anlamaya gerek tek şey şudur:

Ben veritabanında bir dize duyuyorum

Nasıl girdi "AM" neticesinde, ama aynı durumda tutmak mı? Orada str_ireplace veya preg_replace / eregi_replace gibi PHP fonksiyonları vardır, ama ne yapmak gerekir (every exact maçı göre dize bölünür ayrı bir kelime olarak, yani do not maç "kuzu", sadece) "ben".

O yüzden maçları vurgulamak olabilir olduğunu. Ayrıca ben dinamik bir dize kısaltmak ama maçlar ortada nerede tutmak için nasıl anlamaya gerekir:

... Bu nerede dizisinin bir parçasıdır ...

ve herhangi bir tarayıcı kullanıcı tarafından ayarlanabilir font-size göre bunu. Ben sadece WebKit çalıştı vardı, ama bu hiç iyi. PHP veya Python gibi bir şey ile cevap verin, ben adam bir hard-core C değilim.

1 Cevap

Bunu okumanızı öneririz

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Size daha iyi bir arama motoru oluşturmak yardımcı ve muhtemelen soru kısmını cevap olabilir

Burada ne yapabileceğini iyi bir örnektir:

mysql> SELECT id, body, MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root'
    -> IN NATURAL LANGUAGE MODE) AS score
    -> FROM articles WHERE MATCH (title,body) AGAINST
    -> ('Security implications of running MySQL as root'
    -> IN NATURAL LANGUAGE MODE);
    +----+-------------------------------------+-----------------+
    | id | body                                | score           |
    +----+-------------------------------------+-----------------+
    |  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
    |  6 | When configured properly, MySQL ... | 1.3114095926285 |
    +----+-------------------------------------+-----------------+
    2 rows in set (0.00 sec)