2011-04-30 4 views
0

내 사이트에 검색을 추가하고 싶습니다. 나는 비디오 게임의 문제점에 대한 데이터베이스를 가지고있다. 각각의 챌린지는 제목과 설명을 가지고 있습니다. 적어도 설명을 검색 할 수 있기를 원합니다. 가능하면 두 가지를 모두 검색 할 수 있어야합니다. 이제 MATCH() AGAINST()를 사용할 수 있도록 테이블을 설정했지만 단수인지 복수인지 단어에 문제가 있습니다.MySQL 일치 - 복수 단어?

예를 들어 단어 "어시스트"는 여러 가지 문제로 나타나지만 사용자가 "도움"을 입력하면 아무 것도 얻지 못할 것입니다. 그 기능을 추가 할 수있는 방법이 있습니까? 나는 내가 생각할 수있는 모든 것을 시도했지만, 지금까지 아무 일도 없었다.

업데이트 : 최근에야 나는 단지 일치에 대해 알게되었으므로 제 경우에 사용할 수있는 "올바른"방법이 아닌 것 같습니다.

SELECT * FROM challenges WHERE MATCH(description) AGAINST('assists') 

난 그냥 것을 실행 : 내가 말했듯이, 나는 테이블에서 여러 번 나타납니다 위의 예제 단어, assists을 사용하여, description라는 열이있는 테이블을 가지고,이 쿼리를 사용합니다 10 행을 반환했습니다. 내가 assist으로 바꾼다해도 나는 아무것도 얻지 못한다.

+0

어떤 모드의 일치를 사용하고 있습니까? 자연 언어? –

+0

게시물에 추가 정보를 추가했습니다. – HaLo2FrEeEk

답변

0

아마도 MySQL의 SOUNDEX() 함수를 사용할 수 있습니다.

SELECT 
    id, 
    title 
FROM products AS p 
WHERE p.title SOUNDS LIKE 'Shaw' 

// This wil match 'Saw' etc. 

나는이 또한 적용 할 수있다 생각하고 그 복수형

에 걸릴 것으로
+0

다음 쿼리로 시도해 보았습니다. "SELECT * FROM DESCRIPTION 설명이 어디에서 도움이되는지, 아무 것도 얻지 못했을 때, 나는 그것을"도움 "으로 변경했지만 여전히 아무것도 얻지 못했습니다. – HaLo2FrEeEk

+0

나는 당신을 위해 그것을 검사했고 정상적인 'assist'와 'assists'는 Soundex를 가지고왔다. 그래서 그들은 그 질문에 의해 발견되어야합니다. 이 사이트에서 Soundex를 확인하실 수 있습니다 : http://www.searchforancestors.com/soundex.html –

+0

하지만 이전 메모에서 설명한 쿼리를 실행했음을 알려드립니다. 나는 "assist"와 "assists"라는 단어에 대해 0 개의 결과를 얻었습니다. – HaLo2FrEeEk

0

난 당신이 뭘 하려는지의 요점 될 수 있지만 단지 LIKE 일치하지 왜 다음과 같이하십시오 :

SELECT * FROM challenges WHERE description LIKE "%assist%"; 

"어시스트"뿐만 아니라 "어시스트"도 포함됩니다. 물론 "조수"와 "도움"은 일치하지 않을 수도 있습니다 ...

+0

그래, 내가 뭘 찾고 있는게 아니야. 당신이 말했듯이, 검색 용어를 포함하고있는 어떤 단어와도 일치 할 것입니다. 예를 들어 "read"를 검색하면 "thread", "bread"등이 반환됩니다. – HaLo2FrEeEk