2011-03-02 4 views
2

이것은 꽤 광범위한 질문이지만 올바른 방향 (기술 및 방법론)을 강구하기를 희망합니다.iphone 응용 프로그램 용 데이터베이스에 검색 시스템을 구현하는 방법

좋아, 나는 HTTP 요청을 통해 웹 서비스 (C#)와 함께 작동하는 iphone 앱을 가지고있다. 웹 서비스는 기본 데이터베이스에 연결하고 요청에 따라 필요한 데이터를 추출하여 응용 프로그램에 다시 제공합니다.

이제 앱에서 검색 시스템을 구현해야합니다. 사용자가 몇 단어를 검색하면 가장 관련성이 높은 결과를 제공해야합니다. 검색은 데이터베이스의 다른 테이블에서 수행되어야합니다. 각 테이블은 여러 열에서 검색 할 수 있습니다. 예를 들어 사람 테이블을 검색 할 때 이름, 성, 회사 및 기타 필드를 검색해야합니다. 다른 테이블에는 다른 중요한 컬럼이 있습니다.

나는 어디서부터 시작해야할지 모르겠다는 의문이 너무 많습니다.

검색을 수행하기 위해 SQL 쿼리를 어떻게 만들지 만, 여전히 충분히 빠릅니다. 인덱싱 된 컨텐트로 테이블을 만들 필요가 있습니까?
결과에 관련성 요소를 추가해야 궁극적으로 가장 관련성이 높은 결과 만 필터링 할 수 있습니까? 예를 들어, 사용자가 Smith를 검색하면 Smith 또는 Company라는 사람이있을 수 있습니다. 설명에 smith가있을 수있는 다른 모든 내용 앞에 표시되어야합니다.

나는 약간의 애매한 질문을 알고 있지만 누군가가 원하는 경우 더 설명 할 수있다.

당신에게 이런 종류의 어떤 언어에 따라 달라집니다

+0

올바른 방향으로 나를 가리키는 대답을 기꺼이 받아 드리겠습니다. –

답변

1

을 열 우선 순위를 정의 할 수 있습니다. 그것은 멋진 기술이고, 처음에 의심이 들더라도 "Lucene in Action"이라는 책의 3/4을 읽은 후에 그것이 필요한 모든 것을 가지고 있다는 것이 분명했습니다.

필자는 모든 요소가 필요한 완전한 기능의 검색 시스템이 아니라 검색 시스템의 핵심을 처리하는 라이브러리라는 것을 알고 있습니다. 내 응용 프로그램/웹 서비스/데이터베이스와 통합하려면 약간의 작업이 필요합니다. 어떻게되는지 알려 드리겠습니다.

감사합니다.

2

감사/당신의 서버에 사용하는 RDBMS. Sphinx과 같은 다양한 DB 검색 솔루션을 체크 아웃하면 모든 색인 생성 작업이 수행되고 간단한 검색 API가 제공됩니다. 예를 들어 스핑크스는 문자 매핑 (ß->s, ä->a) 나는 루씬을 사용하기로 결정했습니다 결국 등

+0

db는 SQL Server 2000이고 웹 서비스는 C#입니다. –

+0

스핑크스는 좋아 보이지만 나는 GPL 라이센스를 받고있다. 상업용 라이센스를 사용할 수는 있지만 구매해야 할 수도 있습니다. 적어도 현재는 고객에게 추가 비용을 들이지 않고도 방법을 찾고 싶습니다. 모두 실패하면 스핑크스를 고려할 것입니다. 감사합니다 –

+0

스핑크스 자체가 독립 실행 형 응용 프로그램이므로 더 큰 문제는 C# 클라이언트 라이브러리가 GPL인지 여부입니다 (분명히 그렇습니다). 그러나 당신/회사의 서버에서 사용하는 한, GPL은 오픈 소스를 강요하지 않을 것입니다 (AGPL이). –

관련 문제