2011-01-16 3 views
0

나는 테이블에 단어 목록을 가지고 있습니다. 예를 들어 모든 레코드를 검색하고 싶습니다. 책과 책, 펜과 펜은 's'로 끝나는 모든 단어를 의미합니다. 쿼리는 's'가없는 단어와 's'가있는 단어를 보여줘야합니다. 하지 쿼리 "SELECT * FROM words WHERE word LIKE '%s'" 스키마 정의이며,SQL 쿼리 이전 검색 단어에 대한 상대적 검색

단어 = 나는이 작업을 수행 할 수있는 방법 '단어' 에 검색해야>

<word, part_of_speech? 결과가 될 수 ,

book 
books 
pen 
pens 

그 뭔가처럼, '단어'로 콜 럼의 값이와 '단어'+ '의'다음 모두의 행을 보여 같은 다른 값이있는 경우 '단어 'and'word '+'s '와 같은 단어를 사용합니다. sqlite를 사용하고 있습니다.

+0

이것이 어떤 DBMS를위한 것입니까? – RichardTheKiwi

+1

'공장 '과'공장'; '남자'와'남자' – SLaks

+1

물고기 -> 물고기, 마우스 -> 마우스. 당신은 복수로의 전환을 설명합니까? 당신의 질문이 무엇인지 모르시겠습니까? 하나의 테이블에 단어 목록이 있다는 의미입니까, 단 하나의 복수형으로 된 첫 번째 테이블의 목록을 사용하여 다른 테이블을 검색 하시겠습니까? 그리고 검색되는 테이블에 대한 경기는 "전체 단어"일 필요가 있을까요? – RichardTheKiwi

답변

1
SELECT word FROM words WHERE word LIKE 'book%' 

'책', '책', '즐겨 찾기', 당신은 단지 특정 sufix를 검색하려는 경우 등

+0

은 서적뿐만 아니라 다른 단어 및 특정 접미어에도 사용됩니다. – karim

+0

CREATE TABLE 스크립트를 게시 할 수 있습니까? – James

+0

CREATE TABLE "no_en"("id"INTEGER PRIMARY KEY AUTOINCREMENT는 NULL이 아니며 "no"VARCHAR NOT NULL COLLATE NOCASE, "en"VARCHAR NOT NULL COLLATE NOCASE, "part_of_speech"VARCHAR, 카테고리 INTEGER, FOREIGN KEY (카테고리) REFERENCES 카테고리 (id)) – karim

0

다음

SELECT 
    * 
FROM 
    words 
WHERE 
    word = '%s' 
    or word = '%s' || 's' #change 's' to any addition you want to try 
0

구글 형태소은 "포터를 시도 일치합니다 알고리즘 "을 적용한 후 데이터 에 적용한 후로드하십시오. 이 알고리즘은 복수형뿐만 아니라 다른 많은 형태의 단어를 단일 단어로 변환 할 수있는만큼 가깝습니다. 예를 들어, "학자"는 "학자"가되어 그와 같은 것입니다.

품질 평가 점수가 "마우스"및 기타 답변에 제공된 다른 예를 다루지 않기 때문에 품질 기준에 맞지 않는 경우 "형태소 분석 파일"을 찾아야합니다. 나는 자유로운 사람이 없다는 것을 안다. (아무도 없다는 것을 의미하지는 않는다.) 그러나 우리가 나의 가게에서 사용하는 것은 상업적인 패키지의 일부이기 때문에 결코 무료 패키지를 찾을 필요가 없다.

어쨌든 단어에 형태소 분석을 적용하면 더 이상 단어의 여러 버전을 검색 할 필요가 없습니다. 단지 줄기를 검색하면됩니다.