2010-01-15 3 views
0

나는 php/mysql 디렉토리가 있습니다. 누군가 "Johnson & Johnson"과 같은 회사 이름을 검색하면 "Johnson and Johnson"이라는 DB와 일치하지 않습니다.검색 및 앰퍼샌드

나는 현재 '% var %'종류의 검색을하고 있습니다. 이 작업을 쉽게 수행 할 수 있습니까? 열의 전체 텍스트를 포함하는 INNODB 또는 관련이 더 많은 테이블을 설정하는 문제인지는 확실하지 않습니다.

덕분에, 돈

답변

1

그래, 당신은 검색어를 tokenising하고 tokenised 색인을 통해 검색 할 수있는보다 정교한 검색이 필요합니다. InnoDB 테이블 엔진에서 전체 텍스트 검색을 사용하면 그럴 수 있지만 다른 옵션을 볼 수도 있습니다. 당신이 데이터베이스에 내장 된 얻을 것이다보다

이 모든

  • Sphinx
  • Lucene
  • Solr
  • Nutch 더 정교한 전체 텍스트 인덱서와 검색 자이다 : 당신이 고려해야 수있는 일부 엔진을 사용하지만, MySQL 전체 텍스트 검색보다 설정하고 실행하는 데 더 많은 작업이 필요하므로 필요한 기능에 따라 다릅니다.

0

&and으로 대체하는 것은 실제로 내 책에서 다루기 힘든 작업이 아닙니다.

사전 정의 된 규칙 (예 : "&"및 "+"가 "and"가 됨)을 사용하여 사전에 그러한 교체를 수행하면 더 나은 요금을 적용 할 수 있습니다.