MySQL ve PHP metin arama çalışmıyor

3 Cevap php

Şu anda PHP kullanarak benim MySQL tablo (metin tipi) 2 alanlar üzerinde bir arama gerçekleştirmek için çalışıyorum.

SELECT  * FROM content_items WHERE MATCH (content,name) AGAINST ('".urldecode($_REQUEST['term'])."' IN BOOLEAN MODE)

Ben her zaman ne olursa olsun (hatta sorgu statik yapmaya çalıştım ve hala işe yaramadı) için ne arama, sıfır sonuç alıyorum. Ben her iki alanda dizinleri FULLTEXT var.

Peki bu neden olabilir?

Teşekkürler,

Roy

P.S.

Arama sokması herhangi bir uzunluk uygun olmalıdır (hatta kısa olanlar)

3 Cevap

Bu indeksler ile ilgili bir sorun oldu. Onları yeniden çözüldü.

Sql deyimi mantıklı. Ben sorun burada yatıyor düşünüyorum:

urldecode($_REQUEST['term'])

Bir not bu ilgili PHP Kılavuzunda var

Uyarı

The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.

Alkış,

Markos

(Sorgu bir hata atma varsayarsak)

You might want to check the mysql configs related to full text searching. For example, by default terms under 4 characters won't matching anything

mysql> show variables like 'ft_%';
+--------------------------+----------------+
| Variable_name            | Value          |
+--------------------------+----------------+
| ft_boolean_syntax        | + -><()~*:""&| |
| ft_max_word_len          | 84             |
| ft_min_word_len          | 4              |
| ft_query_expansion_limit | 20             |
| ft_stopword_file         | (built-in)     |
+--------------------------+----------------+
5 rows in set (0.00 sec)