>  기사  >  데이터 베이스  >  Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

黄舟
黄舟원래의
2017-08-03 09:18:181659검색

이전 기사에서는 Tomcat에 solr4.10 및 solr4.10 통합 IK 분석기 단어 분할기를 배포하는 방법을 소개했습니다. 이제 MySQL 데이터베이스 쿼리를 실현하기 위해 MySQL 데이터베이스 데이터를 인덱싱하도록 solr을 구성하는 방법을 소개하겠습니다.

먼저 MySQL에 연결하는 데 필요한 jar 패키지를 다운로드해야 합니다. 제가 다운로드한 것은 mysql-connector-java-5.1.26-bin.jar입니다.

1. 데이터베이스, 테이블, 필드 정의 등 MySQL 데이터베이스 관련 작업이 미리 완료된 것으로 가정합니다. 다음은 테스트 케이스에 사용된 데이터베이스에 대한 소개입니다. 데이터베이스 및 테이블 이름은 크롤러, 사용자 이름은 루트, 비밀번호는 admin입니다. SQL 문은 여기에 나열되지 않으며 어쨌든 테스트입니다. 그리고 Solr의 압축해제 경로와 Solr_HOME의 경로는 사람마다 다르기 때문에 앞으로는 $SOLR_HOME을 사용하여 Solr_HOME의 경로를 표현하겠습니다.

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

2. DataImportHandler를 사용하여 데이터 가져오기 및 색인화

$SOLR_HOMEcollection1confsolrconfig.xml

앞에 추가 그림과 같이 데이터 가져오기 처리를 위한 핸들러:

그 중 data-config.xml 파일은 solr과 MySQL 간의 매핑 관계를 정의하는 데 사용됩니다. 여기서 사용되는 상대 경로는 solrconfig.xml과 동일한 디렉터리입니다. 따라서 $SOLR_HOMEcollection1conf 디렉터리에 data-config.xml 파일을 생성합니다.

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

3 data-config.xml 파일의 내용을 통해 Solr과 MySQL 데이터베이스 간의 매핑을 완료합니다.

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?


4.schema.xml 파일은 압축된 패키지에서 복사되었으며 많은 중복 데이터가 포함되어 있으므로 수정하세요. MySQL 데이터베이스 테이블과 관련된 필드는 파일에 정의되어 있습니다. 관련 없는 필드만 제거하십시오. 그러나 _version_ 및 text와 같은 일부 필드는 여전히 유지해야 합니다. 유지되고 다른 필드와 CopyField는 삭제되어야 합니다. 그림과 같습니다.

위 그림에서 내 ID는 int 유형으로 정의되어 있으며, 기본적으로 Solr의 인덱스 기본 키는 type="string" 문자열 유형만 지원합니다. 해결 방법: 동일한 디렉터리에서 elevate.xml을 수정하고 다음 2줄을 주석 처리합니다.

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

5. mysql-connector-java-5.1.26-bin.jar 및 solr-4.10.3distsolr-dataimporthandler-4.10.3.jar을 D:Solrsolr-4.10.3examplesolr-webappwebappWEB에 복사합니다. INFlib.


6. 그림과 같이 tomcat을 열고 Solr의 관리 UI 인터페이스에 들어가서 Core Selector에서 collection1을 선택하고 dataImport 하위 메뉴를 선택합니다.

설정을 완료한 후 실행을 클릭하세요.

Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?

7. 쿼리 테스트의 경우 코어 선택기 아래 하위 메뉴에서 Query를 선택하고 q 상자에 내용: Xi Jinping을 입력하고 아래를 클릭하면 쿼리 결과가 표시됩니다


위 내용은 Solr을 사용하여 MySql 데이터베이스를 인덱싱하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.