2012-02-23 2 views
0

XML 문서가 있고 그것을 Lucene 색인으로 색인하려고합니다. 즉XML에서 Lucene 문서 만들기

<hello> 
    <world>hi</world> 
</hello> 

내가 (분석기 지정) 문서에 필드 (hello.world:"hi ")가 기대

어떤 도구를 존재 여부를 항상하지만 난 궁금 해서요을 것을 분석 할 수

자동으로 생성 하시겠습니까?

답변

1

예, 자동으로 수행하는 "도구"(실제로는 완전한 데이터베이스 서버)가 있습니다 : eXist. 제대로 구성되면, 이것은 당신이

for $hit in collection("/db/my-stuff")//hello/world[ft:query("hi")] 
    order by ft:score($hit) (:uses Lucene scoring formula:) 
    return $hit 

분석기가 당 문서 컬렉션을 구성 파일에 지정된처럼 XQuery와 루씬 전체 텍스트 쿼리를 혼합 할 수 있습니다.

Apache Digester를 사용한보다 가벼운 접근법은 (이전) IBM DeveloperWorks article에 설명되어 있습니다.

EDIT 2 년 동안 eXist를 다룬 후에 Lucene 통합이 완벽하지 못하다는 점을 추가하고 싶습니다. 간단한 쿼리의 경우 일반적으로 정상적으로 작동하지만 복잡한 XPath 쿼리가 진행되는 동안 전체 텍스트 쿼리를 수행하면 쿼리 최적화 프로그램이 혼란스럽고 잘못된 결과 또는 끔찍한 성능이 발생할 수 있습니다. 어쩌면 eXist 2.0에서이 중 일부를 수정했을 수도 있습니다. YMMV.