Zrozumienie wiodącej wydajności symboli wieloznacznych Lucene

Lucene domyślnie nie zezwala na prowadzenie wieloznacznych znaków w wyszukiwanych terminach,ale można to włączyć z:

QueryParser#setAllowLeadingWildcard(true)

Rozumiem, że użycie wiodącego symbolu wieloznacznego uniemożliwia Lucene korzystanie z indeksu. Wyszukiwania z wiodącym symbolem wieloznacznym muszą skanować cały indeks.

Jak zademonstrować wydajność wiodącego zapytania wieloznacznego? Kiedy można z niego korzystaćsetAllowLeadingWildcard(true)?

Zbudowałem indeks testowy z 10 milionami dokumentów w postaci:

{ name: random_3_word_phrase }

Indeks ma 360M na dysku.

Moje zapytania testowe działają dobrze i nie byłem w stanie zademonstrować problemu z wydajnością. Na przykład zapytanie oname:*ing produkuje ponad 1,1 miliona dokumentów w mniej niż 1 sekundę. Zapytaniename:*ing* produkuje ponad 1,5 miliona dokumentów w tym samym czasie.

Co tu się dzieje Dlaczego nie jest tak wolno? Czy 10 000 000 dokumentów nie wystarczy? Czy dokumenty muszą zawierać więcej niż jedno pole?

questionAnswers(2)

yourAnswerToTheQuestion