1

저는 Zend를 사용해 왔으며 검색이 필요합니다. Zend 문서는 훌륭하지 않으므로 대답하기 쉽지만 직접적으로 명백하지 않은 몇 가지 질문을했습니다. 나는 SQL 데이터베이스 내가 그 항목의 텍스트 내 항목의 인덱스를 연결하려면 어떻게몇 가지 Lucene 관련 질문

  1. 를 검색 할 수 루씬을 사용하고 있습니다. 따라서 항목을 검색하고 찾으면 색인을 어떻게 가져 옵니까? 내가 말할 수있는 한, 검색 텍스트 만 반환 할 수 있습니다.

  2. 모든 데이터를 보유하고 있지만 문서가 이미 작성된 항목을 문서에 추가하면 해당 문서는 이미 열려 있습니다 ('문서'), $ doc = new Doc(), $ doc-> addDocument(), commit()?

  3. 나는 내가 루씬 문서를 나는 데이터베이스에 무언가를 추가 할 때마다 업데이트하는 것이 이해합니다. 최적화 할 때마다 뭔가를 추가 할 때마다 다시 최적화해야합니까? 비효율적입니까? 일주일에 한 번해야합니까?

무엇이 궁금한 것 같아서 불편을 끼쳐 드려 죄송합니다. 사전에 도움을 주셔서 감사합니다.

답변

2
  1. '색인 생성 및 검색'- 결국 반환 할 항목을 색인화해야합니다. 즉, 텍스트 "Flux Capacitator"를 검색 할 때 레코드 ID 1389를 반환하려면 한 필드에 텍스트가 있고 다른 필드에 ID가있는 문서를 저장해야합니다. id 필드는 인덱싱 할 필요가 없지만 다시 가져올 수 있도록 저장해야합니다.
  2. 찾고있는 것은 '문서 업데이트'작업입니다. Lucene은 실제로 그것들을 가지고 있지 않습니다. 먼저 문서를 삭제 한 다음 업데이트 된 정보가 포함 된 새 문서를 추가해야합니다. 이제 항목 1로 돌아가서 거기에 추가 한 ID 필드를 가져 와서 키워드로 말하십시오. 키워드를 삭제하려면 문서의 고유 식별자로 사용해야하므로 색인 필드를 키워드로 사용하십시오.
  3. 큰 질문입니다. 이것은 유스 케이스에 크게 의존합니다. 사이트/데이터베이스가 상대적으로 유휴 상태 일 때 매일 "데드 타임"이 있습니까? 그것은 최적화 할 시간입니다. 그런 시간 없어? 당신은 최적화를 피하고 작은 (예 : 5-10 %) 성능 저하를 취할 수 있으며, 이는 Merge Factor을 사용하여 완화 할 수도 있습니다.

나는이 메이크업 감각을 바랍니다. 그렇지 않은 경우 의견에 질문하십시오.

+0

wiki entry 내가 그것을 가지고 생각! 감사! – Ethan

+0

사실, 나는 질문이 있습니다. 단어 "축구"가 포함 된 검색 테스트가 있다고 가정합니다. 내가 "발"을 찾으면 그것은 나오지 않는 것 같습니다. 이 일을 할 수있는 방법이 있습니까? – Ethan

+0

"foot *"을 사용해보십시오. –

0

점 3) 루씬 2.9에서 해결 SegmentReader의 수단으로 구현 NRT (NearRealtimeSearch)와 같은 + 내부 RamDirectory OtisGospodnetic 사용

체크