2012-06-25 16 views

Odpowiedz

23

Różnią się sposobem podzielenia analizowanego tekstu na tokeny.

StandardTokenizer robi to na podstawie następujących (wzięte z Lucene javadoc):

  • Dzieli słowa na znaki interpunkcyjne, usuwanie znaków interpunkcyjnych. Jednak kropka, która nie znajduje się za białymi cyframi, jest uznawana za część tokenu za część .
  • Dzieli słowa na łączniki, o ile nie ma numeru w tokenie , w którym to przypadku cały token jest interpretowany jako numer produktu i nie jest dzielony.
  • Rozpoznaje adresy e-mail i internet nazwy hostów jako jeden token.

WhitespaceTokenizer robi to na podstawie białych znaków:

WhitespaceTokenizer jest tokenizer że dzieli tekst na spacji. Sąsiednie ciągi znaków spoza białych znaków tworzą żetony.

Należy wybrać tokenizer, który najlepiej pasuje do Twojej aplikacji. W każdym przypadku musisz użyć tego samego analizatora/tokenizerów do indeksowania i wyszukiwania!

+0

Dzięki csupnig! Kiedy mówisz "używaj tego samego analizatora/tokenizera" do indeksowania i wyszukiwania, masz na myśli, że analizator musi być dopasowany do typu używanego tokenizera, prawda? – trillions

+2

Tak, powinni zrobić to samo, aby wyprodukować podobne żetony. Istnieją rzadkie przypadki, w których w analizatorze analizujących zapytania mają być używane inne tokenizery niż tokenizery używane podczas indeksowania. – csupnig

+0

Dzięki csupnig :) – trillions