'-' ve '&' ile sorun

2 Cevap php

PHP bir arama motoru var. Bir arama normalde tamam zaman. Arama metni 'şirket' olduğunu, ve veritabanındaki 'şirket' alanında var ...

Arama metin &company veya -company olduğunda sorun ve veri &company veya -company hiçbir maç yoktur. neden?

- ve & dize ile sorun ...

2 Cevap

Tırnak içinde arama terimlerinizi koyarak deneyin. Bu mysql Eğer tam metin arama anlamıyla karakterleri demek bilmeniz yardımcı olacaktır:

SELECT * FROM tablename MATCH (company) AGAINST ('"&company"' IN BOOLEAN MODE)

SELECT * FROM tablename MATCH (company) AGAINST ('"-company"' IN BOOLEAN MODE)

Eğer Text Search kullanarak, o zaman & ve - karakterleri saklıdır. Ben bu sorun için herhangi güzel bir çözüm bulamadı. Ne yaptım sadece özel karakteri çıkarın ve tam metin arama çalıştırılır. Onlar At & t arıyorsanız Örneğin ben "AT" "T" için bir arama koşmak, ancak gürültü kelime varsa At ve A orada bulunan ve herhangi bir sonuç almazsınız.

Başka bir çözüm de özel bir karakter talebinde algılamak ve bir LIKE '% & Company%' arama yerine bir tam metin arama çalıştırın, ancak bu sorgunun performansını etkileyecek etmektir.