루씬은 기본적으로하지 않습니다 수 있도록 검색어에서 최고의 와일드 카드, but this can be enabled과 :이해 루씬 선도 와일드 카드 성능
QueryParser#setAllowLeadingWildcard(true)
내가 선도적 인 와일드 카드의 사용이 인덱스를 사용 루씬을 방지 이해합니다. 선행 와일드 카드로 검색하면 전체 색인을 검색해야합니다.
와일드 카드 쿼리의 성능을 어떻게 보여줄 수 있습니까? setAllowLeadingWildcard(true)
을 언제 사용할 수 있습니까?
{ name: random_3_word_phrase }
인덱스는 디스크에 360M입니다 :
나는 형태로 천만 문서와 테스트 인덱스를 구축했다.
테스트 쿼리 성능이 뛰어나고 성능 문제를 실제로 보여줄 수 없었습니다. 예를 들어 name:*ing
을 쿼리하면 1 초 이내에 110 만 개가 넘는 문서가 생성됩니다. 쿼리 name:*ing*
은 동시에 150 만 개가 넘는 문서를 생성합니다.
여기가 어떻게됩니까? 왜 이렇게 느리지 않니? 10,000,000 개의 문서로 충분하지 않습니까? 문서가 단일 필드 이상을 포함해야합니까?
더 큰 색인이 필요합니다. 위키 피 디아 데이터 세트를 다운로드하고 인덱싱을 시도한 다음 다시 테스트 해보십시오. – GalacticJello
@GalacticJello 더 많은 문서 에서처럼? 문서 당 더 많은 필드가 있습니까? 긴 필드? –
당신은 lucene의 버전을 언급하지 않았습니다. 어쩌면 당신은 이미 알고 있지만, 4.0 (현재 알파) 버전에는 와일드 카드 검색 속도가 훨씬 빨라졌습니다. – javanna