2010-08-14 5 views
0

문자열 목록이 % LIKE % 주어진 문자열인지 확인하는 간단한 방법이 있습니까? 예를 들어다른 문자열 목록이 % LIKE % 다른 문자열인지 확인하십시오.

:

책 동물

모두가 "동물에 대한 책"이 조건을 만족시겠습니까?

'% book %'과 (과) '% animal %'LIKE 등의 제목을 쓸 수 있다는 것을 알고 있지만 다루기 힘들어 보입니다.

저는 이것을 자동 완성에 사용하고 있습니다. 여기서 나는 모든 단어가 결과에 나타나는 결과를 반환합니다.

+0

나는 당신이'LIKE' 연산자의 구문을 잘못 이해했다고 생각합니다. – Timwi

+0

방금 ​​잘못 입력했습니다 .. 고정 – babonk

답변

0

친구 ... "전체 텍스트"colums로 검색 가능한 열을 다음

SELECT * FROM books WHERE MATCH(fulltext_column) AGAINST('animal book a')

가장 좋은 방법을. :) http://devzone.zend.com/article/1304

+0

자동 완성에서 FULLTEXT 검색을 사용하는 것이 합리적입니까? 나는 자동 완성에 완벽 % % LIKE %의 정밀도가 필요하다고 생각할 것입니다. 당신이 원하는 것을 – babonk

+0

에 넣으십시오. 완벽한 정확성을 원하지 않습니다. 원하는 순서대로 단어를 매치 할 수 있기를 원합니다. 너무 제한적입니다. –

+0

내 관심사는 FULLTEXT는 스톱 워드, 최소 길이 등과 같은 제한이 있습니다. LIKE는 정밀도가 완벽하기 때문에 .. 자동 완성을 위해 더 적합하다고 생각했습니다. – babonk

0

http://lucene.apache.org/solr/을 보면 데이터를 색인화 한 다음 자동 완성 드롭 다운을 채우기 위해 호출 할 수있는 REST API를 제공 할 수 있습니다.

1) 조항은 당신이 가지고있는 것처럼 WHERE의 많은 쿼리를 수행

+0

팁 주셔서 감사합니다. 지금은 마감일에 일종의 그래서 나는이 MySQL에서 일하고 싶습니다 – babonk

0

는 지금까지 내가 아는 한, 두 가지 옵션이 있습니다.

2) 정렬 된 단어가 모두있는 열의 복사본을 유지 관리합니다. 그런 다음 검색 토큰을 정렬하고 쿼리를 수행 할 수 있습니다.

+0

그래, 당신은 또한 솔라를 사용할 수 있지만 당신이 할 수있는 것의 부재는 (2) 옵션을 열거 할 수 있습니다. –

+0

옵션 2는 3 단어를 순서대로 필요로합니다. – kennytm

+0

죄송합니다. 전 얼마 전 답장을 보내지 않았습니다. 별도의 정렬 된 열을 유지하는 이유가 있습니다.) –

0

MySQL에는 전체 텍스트 검색 인덱스가 있으므로 효율적인 결과를 얻으려면이 옵션을 사용하는 것이 좋습니다. Lucene과 함께가는 것은 자동 완성을위한 과잉 행동 일 수 있습니다.

+0

자동 완성에서 FULLTEXT 검색을 사용하는 것이 합리적입니까? 나는 당신이 자동 완성에 완벽한 % LIKE % 정밀도가 필요하다고 생각할 것입니다. – babonk

관련 문제