1 부분 Lucene 코어
제 1 장에서 Lucene 3 을 만났습니다
1..1정보 폭발에 대응 4
1.2 Lucene 5 란 무엇입니까
Lucene 은 무엇을 할 수 있습니까? 6
1. 2. 2 Lucene 7 의 역사
1.3 Lucene 및 검색 구성 요소 9
1.3. 1 지수 구성 요소 10
1.3.2 구성 요소 검색 13
1.3.3 검색 프로그램의 기타 모듈 16
1. 3. 4 Lucene 과 어플리케이션 18 사이의 통합 지점
1.4 Lucene 실전: 프로그램 예 18
1.4. 1 인덱스 만들기 19
1.4.2 인덱스 검색 22
1.5 색인 프로세스의 핵심 클래스 이해 25
1.5. 1 색인 작성기 25
1.5.2 디렉토리 25
1.5.3 분석기 26
1.5.4 파일 26
1.5.5 필드 27
1.6 검색 프로세스의 핵심 클래스 이해 27
1.6. 1 인덱스 탐색기 27
1.6.2 기간 28
1.6.3 조회 28
1.6.4 TermQuery 28
1.6.5 TopDocs 29
1.7 요약 29
제 2 장 건물 색인 30
2. 1 Lucene 검색 컨텐츠를 모델링하는 방법 3 1
2.1..1문서 및 도메인 3 1
2. 1.2 유연한 아키텍처 32
2. 1.3 정규화해제) 32
2.2 색인 프로세스 이해 33
2. 2. 1 텍스트 추출 및 문서 작성 33
파일 분석 34
2.2.3 색인에 문서 추가 34
2.3 기본 색인 작업 35
색인에 파일 35 추가
2.3.2 인덱스에서 문서 삭제 38
2.3.3 색인에서 문서 업데이트 39
2.4 도메인 옵션 4 1
2.4. 1 도메인 색인 옵션 4 1
2.4.2 도메인 스토리지 옵션 42
2.4.3 도메인 42 에 대한 프로젝트 벡터 옵션
2.4.4 판독기, 토큰 스트림 및 byte[] 필드 값 42.
2.4.5 도메인 옵션 조합 43
2.4.6 도메인 정렬 옵션 44
2.4.7 다중 범위 44
2.5 가중치 문서 및 필드 45
2.5. 1 파일 가중치 작업 45
2.5.2 도메인 가중치 작업 46
2.5.3 가중치 기준) 47
2.6 색인 번호, 날짜 및 시간 48
1 색인 번호 48
인덱스 날짜 및 시간 49
2.7 필드 잘림) 50
2.8 최근 실시간 검색 5 1
2.9 최적화 지수 5 1
2. 10 기타 카탈로그 하위 범주 52
2. 1 1 동시, 스레드 보안 및 잠금 메커니즘 55
2. 1 1. 1 스레드 보안 및 다중 가상 시스템 보안 55
2. 1 1.2 원격 파일 시스템을 통해 인덱스 액세스 56
2. 1 1.3 인덱스 잠금 메커니즘 57
2. 12 디버그 인덱스 59
2. 13 고급 색인 개념 60
IndexReader 를 사용하여 문서 6 1 을 삭제합니다.
2. 13.2 삭제된 문서의 사용된 디스크 공간 복구 62
2. 13.3 버퍼 및 새로 고침 62
2. 13.4 인덱스 제출 63
2. 13.5 ACID 거래 및 지수 연속성 65
2. 13.6 병합 세그먼트 66
2. 14 요약 68
3 장 응용 프로그램에 검색 기능 추가 70
3. 1 단순 검색 기능 구현 7 1
3.1..1특정 항목 검색 72
3. 1.2 사용자 입력 조회 표현식 분석: QueryParser 73
3.2 색인 검색 범주 사용 76
3.2. 1 색인 검색 범주 작성 76
3.2.2 검색 기능 구현 78
3.2.3 TopDocs class 78 사용
3.2.4 검색 결과 페이지 지정
3.2.5 최근 실시간 검색 79
3.3 Lucene 8 1 의 채점 메커니즘 이해
3. 3. 1 Lucene 어떻게 8 1 을 득점합니까?
3.3.2 explain () 을 사용하여 검색 결과 점수 이해 83
3.4 Lucene 의 다양한 쿼리 84
3.4. 1 품목별 검색: $ TermQuery Class 85
3.4.2 지정된 프로젝트 전체 검색: TermRangeQuery Class 86
3.4.3 지정된 숫자 범위 검색: NumericRangeQuery class 87
3.4.4 문자열별 검색: 접두어 질의 클래스 88
3.4.5 조합 질의: BooleanQuery 클래스 88
3.4.6 구를 통한 검색: 구 조회 클래스 9 1
와일드 카드 조회 범주 93
3.4.8 유사 항목 검색: 퍼지 질의 범주 94
3.4.9 모든 문서와 일치: MatchAllDocsQuery 클래스 95
3.5 질의 표현식 구문 분석: QueryParser 96
3.5.1쿼리. tostring 방법 97
용어 조회 97
3.5.3 품목 범위 조회 98
숫자 범위 검색 및 날짜 범위 검색 99
3.5.5 접두어 질의 및 와일드 카드 질의 99
부울 연산자 100
3.5.7 구 조회 100
3.5.8 퍼지 질의 10 1
MatchAllDocsQuery 102
3.5. 10 그룹 질의 102
3.5. 1 1 도메인 선택 103
3.5. 12 하위 쿼리에 가중치 설정 103.
3.5. 13 쿼리 패스103 을 사용해야 합니까?
3.6 요약 104
제 4 장 Lucene 105 분석 과정
4. 1 분석기 사용 106
4.1..107 중 분석
4.1.2 쿼리 파서 분석 109
4. 1.3 분석 대 분석: 분석기는 언제 109 에 더 이상 적용되지 않습니까?
4.2 분석 분석기 1 10
4.2. 1 용어 단위 구성 1 1 1
4.2.2 어휘 단위 흐름 공개 1 12
4.2.3 관찰 분석기 1 15
4.2.4 어휘 단위 필터링: 필터링 순서의 중요성 1 19
4.3 내장 분석기 사용 12 1
4.3. 1 분석기 중지 122
표준 분석기 122
4.3.3 어떤 코어 분석기 123 을 사용해야 합니까?
4.4 근음어 조회 123
4.5 동의어, 별칭 및 같은 의미를 가진 기타 단어 126
4.5. 1 동의어 분석기 만들기 127
4.5.2 용어 단위 13 1 의 위치를 표시합니다.
4.6 어간 분석 132
4.6. 1 StopFilter, 예약공간 133.
4.6.2 는 어간 작업과 비활성화 단어 제거 작업 134 를 결합합니다.
4.7 도메인 분석 134
4.7. 1 다중 구간 분석 135
4.7.2 분야별 분석 135
4.7.3 해결되지 않은 도메인 136 을 검색합니다.
4.8 언어 분석 139
4.8.1유니코드 및 문자 인코딩 139
4.8.2 비영어권 분석 140
4.8.3 문자 정규화 처리 140
4.8.4 아시아 언어 분석 14 1
4.8.5 비영어권 분석에 관한 기타 질문 143
4.9 Nutch 분석 144
4. 10 요약 146
제 5 장 고급 검색 기술 147
5. 1 Lucene 도메인 캐시 148
5.1..1모든 문서에 대한 도메인 값 로드 149.
단락 5. 1.2 에 해당하는 리더 149.
5.2 검색 결과 정렬 150
5.2. 1 도메인 값 기준 150 정렬
5.2.2 관련성별 정렬 153
5.2.3 인덱스 순서로 정렬 154
5.2.4 도메인별 정렬 154
5.2.5 역순 정렬 155
5.2.6 여러 도메인별로 정렬 156
5.2.7 정렬 필드 선택 유형 157.
5.2.8 기본값이 아닌 로케일을 사용하여 157 을 정렬합니다.
5.3 multiprasequery 158 사용
5.4 다중 도메인 일회성 쿼리 160
5.5 스패닝 조회 162
5.5. 1 Span 쿼리 빌딩 블록: SpanTermQuery 165
5.5.2 도메인 시작 부분의 범위 166 을 찾습니다.
5.5.3 인접 스팬 167
5.5.4 일치 결과에서 169 의 겹치는 스팬을 제외합니다.
SpanOrQuery class 170
SpanQuery 클래스 및 QueryParser 클래스 17 1
5.6 검색 필터링 172
5.6. 1 터미널 거리 측정 필터 173
숫자 범위 필터 174
5.6.3 fieldcacherangefilter174
5.6.4 특정 품목 필터링 174
5.6.5 QueryWrapperFilter 클래스 175 사용
SpanQueryFilter class 175 를 사용합니다.
보안 필터 176
5.6.8 BooleanQuery 클래스 177 을 사용하여 필터링
전면 필터 178
5.6. 10 캐시 필터링 결과 178
5.6. 1 1 필터를 쿼리 179 로 캡슐화합니다.
5.6. 12 필터 필터 179
5.6. 13 비 Lucene 내장 필터 180
5.7 함수 쿼리를 사용하여 사용자 정의 점수 180 을 구현합니다.
5.7. 1 관련 클래스 기능 조회 180
5.7.2 함수 쿼리 182 를 사용하여 최근 수정된 문서에 가중치를 부여합니다.
5.8 여러 색인 검색 184
5.8. 1 다중 검색 클래스 사용 184.
5.8.2 parallelmultisearcher186 을 사용한 멀티 스레드 검색
5.9 용어 벡터 186 사용
5.9. 1 유사 서적 검색 187
5.9.2 는 어떤 종류에 속합니까? 190.
레벨 5.9.3 터미널 193
5. 10 FieldSelector 를 사용하여 도메인 194 를 로드합니다.
5. 1 1 느린 검색 중지 195
5. 12 요약 196
제 6 장 확장 검색 198
6. 1 사용자 정의 정렬 방법 사용 199.
6.1..1지리적 위치 정렬 방법에 따른 문서 색인 199
6. 1.2 사용자 정의 지리적 위치 정렬 패턴 200 구현
6. 1.3 사용자 정의 정렬의 값 203 에 액세스합니다
6.2 사용자 정의 수집기 개발 204
컬렉터 기준 범주 205
6.2.2 사용자 지정 컬렉터: BookLinkCollector 206
AllDocCollector 클래스 207
6.3 QueryParser 클래스 확장 208
6.3. 1 사용자 정의 쿼리 파서 동작 208
6.3.2 퍼지 질의 및 와일드 카드 질의 사용 안함 209
6.3.3 숫자 도메인 2 10 에 대한 범위 조회 처리
6.3.4 처리 일자 범위는 2 1 1 입니다.
6.3.5 조회 주문구 2 13
6.4 사용자 정의 필터 2 15
6.4. 1 사용자 정의 필터 구현 2 15
6.4.2 검색 중 사용자 정의 필터 2 16 사용.
6.4.3 또 다른 옵션: FilterQuery 클래스 2 17.
6.5 페이로드) 2 18)
6.5. 1 분석 중 생성된 페이로드 2 19
6.5.2 검색 중 사용된 페이로드 220
6.5.3 페이로드 및 스팬 조회 223
6.5.4 $ 회수를 통한 페이로드 위치 223
6.6 요약 223
2 부 Lucene 어플리케이션
7 장 티카를 사용하여 텍스트 추출 227
7. 1 티카 228 이란 무엇입니까
7.2 tika 및 API 230 의 논리적 설계
7.3 tika 23/kloc-0 설치/
7.4 티카의 내장 텍스트 추출 도구 232
7.5 텍스트 추출 프로그래밍 234
7.5. 1 색인 Lucene 문서 234
레벨 237 티카 도구
7.5.3 맞춤형 분석기 선택 238
7.6 티카 238 제한 사항
7.7 색인 사용자화 XML 파일 239
7.7. 1 SAX 239 로 구문 분석
7.7.2 분석 및 인덱스화에 Apache Commons 소화기 사용 242
7.8 기타 옵션 244
7.9 요약 245
제 8 장 Lucene 기본 확장 246
8. 1 Luke: Lucene 의 색인 도구 상자 247
8.1..1개요 탭: 인덱스 248 에 대한 전역 뷰
8. 1.2 문서 찾아보기 249
8. 1.3 질의 파서 251을 사용하여 검색
8. 1.4 파일 및 플러그인 탭 252
8.2 분석기, 어휘 단위 및 어휘 단위 필터 253
눈덩이 분석기 255
Ngram 필터 256
타일 필터 258
8.2.4 기부 분석기 취득 258
8.3 쿼리 항목 강조 표시 259
8.3. 1 강조 모듈 259
8.3.2 독립 강조 샘플 262
8.3.3 CSS 를 사용하여 263 강조 표시
8.3.4 검색 결과 강조 264
8.4 FastVector 형광펜 266 클래스
8.5 맞춤법 검사 269
8.5. 1 프롬프트 목록 생성 269
8.5.2 최상의 프롬프트 선택 27 1
8.5.3 사용자에게 검색 결과 표시 272
8.5.4 맞춤법 검사 강화에 대한 몇 가지 고려 사항 273
8.6 눈길을 끄는 쿼리 확장 274
8.6. 1 추가 정보
8.6.2 퍼지 유사 질의 275
8.6.3 향상된 쿼리 275
용어 필터 276
8.6.5 반복 필터 276
Regex 쿼리 276
8.7 소프트웨어 기부 모듈 (contrib 모듈) 구축 277
8.7. 1 소스 코드 획득 방법 277
8. 7. 2 contrib 디렉토리용 Ant 플러그인 277
8.8 요약 278
제 9 장 Lucene 고급 확장 279
9. 1 체인 필터 280
9.2 Berkeley DB 를 사용하여 인덱스 저장 282
9.3 WordNet 동의어 284
동의어 인덱스 생성 285
9.3.2 WordNet 동의어를 Analyzer 287 에 연결
9.4 메모리 기반 고속 인덱스 289
9.5 XML 쿼리 파서: "한 상자" 를 뛰어넘는 검색 인터페이스 289
9.5. 1 XmlQueryParser 29 1 사용.
9.5.2 확장 XML 쿼리 구문 295
9.6 주변 쿼리 언어 296
9.7 공간 Lucene 298
9.7. 1 인덱스 공간 데이터 299
9.7.2 검색 공간 데이터 302
9.7.3 공간 Lucene 304 의 성능 특성
9.8 원격 다중 인덱스 검색 306
9.9 유연한 QueryParser 309
9. 10 기타 내용 3 12
9. 1 1 요약 3 13
10 장 다른 프로그래밍 언어에서는 Lucene 3 14 를 사용합니다.
10. 1 마이그레이션 3 15 소개
10.1..1마이그레이션 선택 3 16
10. 1.2 적절한 마이그레이션 버전 3 17 을 선택합니다.
10.2 네오프렌 (C++) 3 17
이식 목적 3 18
10.2.2 API 및 인덱스 호환성 3 19
10.2.3 지원되는 플랫폼
10.2.4 현황 및 향후 전망 32 1
10.3 Lucene-Net(C# 등). 넷 프로그래밍 언어) 32 1
10.3. 1 API 호환성 323
10.3.2 인덱스 호환성 324
10.4 KinoSearch 및 Lucy(Perl) 324
1 키노 검색 325
루시 327
10.4.3 기타 Perl 옵션 327
10.5 밍크 (루비) 328
10.6 PHP 329
10.6. 1 Zend 프레임 329
10.6.2 PHP 브리지 330
10.7 pylucene (파이썬) 330
10.7. 1 API 호환성 332
10.7.2 기타 파이썬 옵션 332
10.8 Solr (여러 프로그래밍 언어 포함) 332
10.9 요약 334
제 1 1 장 Lucene 관리 및 성능 튜닝 335
11..1성능 조정 336
11..1..1단순 성능 조정 단계 337
11..1.2 시험 방법 338
11..1.3 인덱스 검색 지연 조정 339
11..1.4 인덱스 작업 처리량 조정 340
11..1.5 검색 지연 및 검색 처리량 조정 344
1 1.2 멀티스레드 및 병렬 처리 346
1 1.2. 1 인덱스 작업 347 에 멀티 스레드 사용.
1 1.2.2 멀티 스레드 검색 작업 사용 35 1
1 1.3 자원 소비 관리 354
1 1.3. 1 디스크 공간 관리 354
1 1.3.2 파일 설명자 관리 357
1 1.3.3 메모리 관리 36 1
1 1.4 핫 백업 인덱스 364
1 1.4. 1 인덱스 백업 작성 365
1 1.4.2 인덱스 복구 366
1 1.5 일반적인 오류 367
1 1.5. 1 지수 손상 367
1 1.5.2 복구 지수 369
1 1.6 요약 369
사례 연구의 세 번째 부분
12 장 사례 분석 1: 크루거 373
크루거 소개 374
12.2 어플리케이션 아키텍처 375
12.3 검색 성능 376
12.4 소스 코드 분석 377
12.5 하위 문자열 검색 378
12.6 조회 대 검색 38 1
12.7 공간 개선 382
12.7. 1 필드 캐시 메모리 사용량 382
12.7.2 종합지수 382
12.8 요약 383
13 장 사례 분석 2: 마녀 384
13. 1 경보기 소개 385
사이렌 이점 385
13.2. 1 모든 도메인 검색 387
효율적인 사전 388
13.2.3 가변 필드 388
13.2.4 다중 값의 효율적인 처리 388
13.3 사이렌이 있는 인덱스 엔티티 388
13.3. 1 데이터 모델 389
13.3.2 구현 질문 389
13.3.3 지수 요약 390
13.3.4 인덱스 전 데이터 준비 390
13.4 사이렌 392 를 사용하여 엔티티 검색
13. 4. 1 검색 내용 392
13.4.2 셀 393 별로 검색 범위 제한
13.4.3 셀을 튜플 393 으로 결합합니다.
13.4.4 엔티티 설명 쿼리 394
13.5 Solr 에 경보기 통합 394
13.6 벤치마크 395
13.7 요약 397
14 장 사례 분석 3: LinkedIn 398
14. 1 Bobo 를 사용하여 찾은 그룹 검색 398
디자인 14. 1. 1 웨이브 브라우징 400
14. 1.2 깊이 그룹 검색 403
14.2 Zoie 405 를 사용한 실시간 검색
14.2. 1 조이 아키텍처 406
실시간 및 거의 실시간 409
14.2.3 파일 및 인덱스 요청 4 1 1
14.2.4 사용자 정의 인덱스 리더 4 1 1
14.2.5 Lucene 4 12 에 대한 근거리 실시간 검색 비교.
14.2.6 분산 검색 4 13
14.3 요약 4 15
부록 A Lucene 4 16 설치
A. 1 바이너리 설치 4 16
A.2 명령줄 데모 프로그램 실행 4 17
A.3 웹 어플리케이션 데모 프로그램 실행 4 18
A.4 컴파일 소스 코드 4 19
A.5 잘못된 배열
부록 B Lucene 인덱스 형식 42 1
B. 1 논리적 인덱스 뷰 42 1
B.2 색인 구조 정보 422
B.2. 1 다중 파일 인덱스 구조 이해 422
B.2.2 복합 지수 구조 이해 425
B.2.3 변환 지수 구조 426
B.3 역지수 427
B.4 요약 430
부록 C Lucene/Contib 벤치마크 43 1
C. 1 테스트 스크립트 실행 432
C.2 테스트 스크립트의 구성 요소 435
C.2. 1 컨텐츠 소스 및 문서 생성기 438
C.2.2 질의 작성기 439
C.3 제어 구조 439
C.4 내장 작업 44 1
C.4. 1 행 파일 작성 및 사용 445
C.4.2 내장 보고 작업 446
C.5 검색 품질 평가 446
C.6 오류 처리 449
C.7 요약 449
부록 d 자원 450
D. 1 Lucene 기술 자료 450
D.2 국제화
D.3 언어 감지 45 1
D.4 벡터 45 1
D.5 Lucene 이전 버전 45 1
D.6 사례 연구 452
D.7 기타
D.8 정보 검색 소프트웨어 452
D.9 더그 카딩 작품 453
D.9. 1 회의 문서 453
D.9.2 미국 특허 454