2009-07-20 2 views
0

나는 pruposes를 배우기위한 웹 사이트를 만들고 있는데 lucene.net 을 내 콘텐츠의 전체 텍스트 인덱서로보고 있지만 몇 가지 질문이 있습니다.초보자를 Lucene.net에 보내려면 복잡한 쿼리를 사용하는 것이 가장 좋습니다.

내가 범주의 계층 구조 (n 수준) 및 한 범주 (1 cat -> n articles)에 할당 된 기사를 갖게됩니다. 간단한 RDB를 사용하면 카테고리 또는 하위 카테고리에 속한 기사를 매우 쉽게 검색 할 수 있습니다. 하지만 난 고생하고있어 lucene을 사용하여 이런 종류의 쿼리를 작성하는 방법을 상상해보십시오. 옵션이 작동하는 것 같아요 :

나는 모든 기사에 대해 "제목, 텍스트, 카테고리"를 ideing하는 중 하나의 옵션은 먼저 모든 하위 카테고리의 ID가 인 목록을 데이터베이스에서 가져온 다음 검색하는 것입니다 그 목록과 함께 lucene.

다른 옵션은 lucene의 필드 안에있는 기사의 전체 카테고리 "경로"를 색인하는 것입니다. "title", "text", "catparent1, catparent2, catparent3, category"와 같은 것입니까?

복잡한 관계형 필터로 이러한 종류의 쿼리를 수행 할 때 가장 좋은 방법은 무엇입니까? (그냥 텍스트 검색)

답변

4

는 인덱스 필드로 분류 경로를 추가하고 검색 할 구문 검색을 사용

ID  Title    Categories 

"MyDoc1", "Hello world!", "/programming/beginner/samples" 
"MyDoc2", "Prove that P=NP", "/programming/advanced/samples" 

지금 당신은 어느 계층 적 구문 검색을 사용하여 카테고리를 조회 할 수 있습니다

"samples" 

나는이 충족 사용 단어 검색을 사용

"/programming/beginner" 

여부를 계층 적 파일 이름에 대한 색인을 생성하려면 "dirname" 또는 "parent/child" 또는 "/root/parent/child"을 입력하면됩니다.

선행 슬래시를 포함하거나 제외하여 루트에서 검색을 시작할 것인지 여부를 제어 할 수 있습니다.

"복잡한 관계형 필터"의 경우 부울 쿼리를 사용하여 이러한 범주 검색을 다른 검색 및 필터와 결합 할 수 있습니다.