2011-01-13 2 views
0

나는 대부분 의료 조건/질병에 대한 약 100,000 개의 링크를 포함하는 간단한 검색 가능한 목록을 작성합니다. , ID, URL, 이름, 주제 동의어/약어를 허용하고 그러한 것을 가져 오는 의료 링크 목록/표에 대한 검색 구현

  • 주제 (예 : 심장 :

    • 링크 : 지금 사물의 표면에이 사실 나는 다음과 같은 방법으로까지 내 테이블을 설정 한 ... 쉽게 소리 소아과 등) : ID, 이름
    • 조건 (예를 들면 천식, 인플루엔자 등) : ID는, 이름,

    별칭을 그리고 아마도 다른 테이블 :

    • 링크 & 조건 (1 링크에 여러 조건에 해당하는 수 있기 때문에) 당신이 검색하는 경우 있도록 링크 ID, 조건 ID

    을 그래서 기본적으로 의사가 (자신을 포함) 슈퍼 까다로운 때문에, 나는 그것을 만들고 싶어 영국식 또는 미국식 영어이든 다른 고대 이름이든 관련 결과를 얻습니다 (예 : 혈관 수종, 혈관 부종, Quincke 부종 등). "위식도 역류", "위식도 역류 질환", GERD, GORD, GOR)과 유사합니다. 또한 결과 상단에서 검색 문자열과 일치하는 진단을 위해 링크를 그룹화 한 다음 링크 이름과 일치하는 항목을 찾은 다음 마지막으로 주제와 일치시키는 것이 좋습니다.

    내 주요 문제는 수천 가지 조건이 아니라면 최대 20 개의 동의어/철자법 등이 있다는 것입니다. 한 가지 옵션은 일종의 의학 시소러스 일 수있는 MeSH에서 데이터를 가져 오는 것입니다 (단, 미국 영어 만 그렇기 때문에 영국 영어에서 개종 할 방법이 있어야합니다). 문제는 그들이 제공하는 XML이 INSANE이고 약 250MB이다. 데이터 요소가 무엇인지 안내하는 데 도움이됩니다.

    솔직히, 나는 방금 프로그래밍을 시작하고 데이터베이스로 작업을 시작했기 때문에 무엇을 해야할지에 대한 대부분의 가능성이 어렵거나/차선책으로 보였으므로이를 가장 효과적으로 처리하는 방법에 대해 실망했습니다.

    누군가 내게 도움이 될지 궁금한가요? 명확하지 않은 것을 명확하게 해피.

  • 답변

    0

    문제는 Lucene과 같은 문서 지향 저장소에 적합합니다. 예를 들어, 당신은 스키마 등

    로 링크 주제를 디자인 할 수 조건

    1. 그럼 당신은 루씬의 같은 주제와 같은 쿼리를 작성할 수 있습니다 부종 및 모든 결과를 얻을 수 있습니다. 와일드 카드 검색을 추가로 수행 할 수 있습니다.

    2. 영국 철자 (또는 맞춤법 오류)와 일치 시키려면 특정 문자열 거리 내에서 용어를 찾는 ~ 쿼리를 사용할 수 있습니다. 예를 들어 부종 ~ 0.5는 부종, oedoema 등과 일치합니다 ...

    Apache Lucene은 대부분의 주요 언어에서 사용할 수있는 포트가있는 Java 라이브러리입니다. Apache Solr은 Lucene lib를 사용하여 구축 된 본격적인 검색 서버로, RESTful API가 있으므로 선택 플랫폼에 쉽게 통합 할 수 있습니다.

    요약 : 내 권장 사항은 Apache Solr을 MySql db의 부속 장치로 사용하는 것입니다.

    +0

    BTW Solr은 MeSH 스케일 데이터 세트와 함께 쉽게 작동합니다. 필자는이를 사용하여 PubMed 전체 기사 세트의 색인을 생성하고 단일 서버 시스템에서 몇 밀리 초 만에 결과를 얻었습니다. – Mikos

    0

    어렵습니다. 가장 좋은 방법은 MeSH를 사용하고 아마도 영국 영어 용어에 맞추기 위해 soundex를 사용하는 것입니다.

    +0

    멋진 환호성! MeSH에서 데이터를 가져 오는 방법에 대한 아이디어가 있습니까? – Tomcat

    관련 문제