2009-12-10 3 views
3

나는 내 PHP 기반 웹 사이트에 대한 검색 엔진을 만들고 있습니다. mysql 테이블을 검색해야한다.PHP는 '스마트'검색 엔진은 MySQL의 테이블 조언을 검색

검색 엔진은 꽤 '똑똑해야'합니다. 따라서 사용자는 항목을 쉽게 찾을 수 있습니다 (광고 웹 사이트). 예를 들어

는 필드 headlineBmw 330ci 같은 것을 포함 말할 수 ...

MATCH (headline) AGAINST ($querystring) 

을하지만이 충분하지 않습니다 :

나는 현재이 코드 조각으로 전체 텍스트 검색을 설정 한 . 330을 검색하면 결과가 표시되지 않습니다. 결말 ('ci')은 자동차 모델에서 테이블을 검색 할 때 반드시 고려해야 할 많은 결말 중 하나입니다.

headline 필드가 bmw330 인 경우 어떻게됩니까? 전체 단어 만 일치하기 때문에 결과도 없습니다.

또는 또한 headlinebmw 330 어떤 경우에, 나는 내가 bmw 520 검색에도 불구하고, 여전히 FULLTEXT와 나는 결과로 bmw 330을 얻을 것이다, bmw 520 검색 ... 좋지 않아요!

이 문제는 어떻게 해결해야합니까?

답변

3

전체 텍스트 검색의 경우 무료 솔루션을 원하는 사람들은 종종 Sphinx 또는 Solr을 사용하는 경향이 있습니다.

나는이 두 가지를 사용하지 않았지만, PHP와 MySQL에서 유용하고 사용하기 쉽다고 여러 번 읽었습니다.

+0

이 SOLR에 대해 말할 수 없습니다 만, 실제로 스핑크스가 잘 작동합니다. – Wrikken

0

도움말 텍스트를 표시 할 수 있습니다. 사용자가 BMW를 입력하면 BMW 330CI, BMW 320CI 등과 같은 세부 정보를 표시 할 수 있습니다. Google이 검색하는 동안 사용자가 선택할 수 있도록 도움말 텍스트로 표시합니다. 도움말 목록에서.

하지만 위의 아이디어를 구현하지 못했습니다. 죄송합니다.

0

역 색인 검색 엔진은 이미 무료이며 오픈 소스이며 쉽고 강력합니다. 그들은 그러한 종류의 검색 요구 사항에 필요한 모든 것을 갖추고 있습니다.

당신의 상황에 따라 [1] 아파치 루씬 또는 Apache SOLR [2] 또는 탄성 검색 [3]

그들 모두가 좋은 문서와 같은 검색 플랫폼과 같은 검색 라이브러리를 선택할 수 있습니다 그들은 널리 사용됩니다. 전체 텍스트 검색 세계에서 일한 적이 없더라도 학습 곡선을 극도로 최소화합니다.

[1] http://lucene.apache.org
[2] http://lucene.apache.org/solr
[2] https://www.elastic.co/products/elasticsearch