Apache Lucene jest odpowiednia dla każdej aplikacji, które wymagają wsparcia dla wyszukiwania pełnotekstowego, jednocześnie utrzymując zużycie zasobów serwera w dół i produkcji szybkich i wysokiej dokładności wyników.
Lucene jest powszechnie uważany za jednego z najlepszych wyszukiwarek na całym, będąc w centrum wielu innych narzędzi wyszukiwania, najbardziej znana istota Apache Solr .
Lucene jest napisany całkowicie w Javie, a ponieważ jest wydany przez Apache Foundation, został przeniesiony na wiele innych języków i istnieją różne powiązania i opakowania, jak innych firm opracowała oprogramowanie.
Co nowego w tym wydaniu:
- Wszystko dostęp do plików używa teraz API NIO.2 Javy, które dają bezpieczeństwo indeksu Lucene silniejszy pod względem lepszej obsługi błędów i bezpieczniejsze rewizje.
- Każdy segment Lucene teraz przechowuje unikatowy identyfikator segmentu, a per-per-zobowiązać się do pomocy w dokładnej replikacji plików indeksu.
- W trakcie połączenia, IndexWriter teraz zawsze sprawdza przychodzące segmenty dla korupcji przed połączeniem. To może oznaczać, na upgrade do 5.0.0, że łączenie może odkryć dawna ukrytej korupcji w starszym indeksu 4.x.
Co nowego w wersji 5.2.1 / 4.10.4 / 3.6.2:
- Wszystkie pliki Dostęp używa teraz API NIO.2 Javy, które dają bezpieczeństwo indeksu Lucene silniejszy pod względem lepszej obsługi błędów i bezpieczniejszych zobowiązuje.
- Każdy segment Lucene teraz przechowuje unikatowy identyfikator segmentu, a per-per-zobowiązać się do pomocy w dokładnej replikacji plików indeksu.
- W trakcie połączenia, IndexWriter teraz zawsze sprawdza przychodzące segmenty dla korupcji przed połączeniem. To może oznaczać, na upgrade do 5.0.0, że łączenie może odkryć dawna ukrytej korupcji w starszym indeksu 4.x.
Co nowego w wersji 5.1.0 / 4.10.4 / 3.6.2:
- Wszystkie pliki Dostęp używa teraz API NIO.2 Javy, które dają bezpieczeństwo indeksu Lucene silniejszy pod względem lepszej obsługi błędów i bezpieczniejszych zobowiązuje.
- Każdy segment Lucene teraz przechowuje unikatowy identyfikator segmentu, a per-per-zobowiązać się do pomocy w dokładnej replikacji plików indeksu.
- W trakcie połączenia, IndexWriter teraz zawsze sprawdza przychodzące segmenty dla korupcji przed połączeniem. To może oznaczać, na upgrade do 5.0.0, że łączenie może odkryć dawna ukrytej korupcji w starszym indeksu 4.x.
Co nowego w wersji 5.0.0 / 4.10.3 / 3.6.2:
- Nowy Warunki Metody .getMin / Maks pobrać najniższe i najwyższe warunki na polu.
- Nowy IDVersionPostingsFormat, zoptymalizowany do poszukiwania tożsamości, które kojarzą się monotonicznie rosnącą wersję za ID.
- Atomic aktualizacja zestawu doc wartości pola.
- Liczne optymalizacje dla realizacji wartości doc search-czasu.
- Nowy (domyślnie) Lucene49NormsFormat lepiej skompresować pewne przypadki, takie jak bardzo krótkich pól.
- Nowy SORTED_NUMERIC docvalues typu do efektywnego przetwarzania wieloma wartościami pól numerycznych.
- Indexer przechodzi poprzedni symboliczną strumień dla łatwiejszego wykorzystania.
- MoreLikeThis akceptuje wiele wartości na polu.
- Wszystkie klasy, które szacujemy ich wykorzystanie RAM teraz wdrożyć nową odpowiedzialności interfejs.
- Pliki Lucene teraz napisał (pliku) OutputStream na wszystkich platformach, całkowicie uniemożliwiając poszukiwania uproszczonych API IO.
- Poprawa mylący komunikat o błędzie podczas MMapDirectory nie może stworzyć nową mapę.
Co nowego w wersji 4.8.0:
- Lucene ma nowy Rescorer / QueryRescorer API do wykonywania drugiego przejścia rescoring lub reranking wyników wyszukiwania droższymi funkcje punktacji po pobraniu pierwszego przejścia przeboju.
- AnalyzingInfixSuggester obsługuje niemal w czasie rzeczywistym autosuggest.
- Uproszczone wysłane oddziaływania posortowane (używając SortingMergePolicy i EarlyTerminatingCollector) w użyciu Lucene jest rodzaj klasy wyrazić porządek.
- punktacji punktacji sypkich iterator i normalne oparte zostały rozdzielone, więc niektóre pytania mogą bardziej efektywnie zrobić luzem punktacji.
- Switched do MurmurHash3 hash warunki podczas indeksowania.
- IndexWriter obsługuje aktualizacji pól z wartościami doc binarnych.
- HunspellStemFilter używa teraz 10 do 100x mniej pamięci RAM. Ładuje również wszystkie znane słowniki OpenOffice bez błędu.
- Lucene teraz synchronicznych także metadane katalogu na zatwierdzeń, jeżeli system operacyjny i pozwala na to system plików (Linux, MacOSX są znane do pracy).
- Java Lucene teraz używa systemu plików 7 funkcji pod maską, więc pliki indeksu mogą być usunięte w systemie Windows, nawet gdy czytelnicy są nadal otwarte.
- Poważny błąd w NativeFSLockFactory została ustalona, które mogłyby umożliwić wielu IndexWriters nabyć ten sam zamek. Plik blokada nie zostanie usunięta z katalogu indeksu, nawet gdy blokada nie jest utrzymywane.
Co nowego w wersji 4.7.0:
- Przy sortowaniu według String (SortField.STRING), można obecnie określić, czy brakujące wartości powinny być sortowane najpierw (domyślnie), lub ostatnia.
- Wsparcie NRT dla systemów plików, które nie mają usuwać na ostatnim zamknięciu lub nie można usunąć, gdy odwołuje semantyki.
- Dodane LongBitSet do zarządzania więcej niż 2.1b bitów (użyj inaczej FixedBitSet).
- Dodane Analyzer na kurdyjski.
- Dodano wsparcie Ładowność do FileDictionary (Zaproponuj) i uczynić go bardziej konfigurowalny.
- Dodano nowy BlendedInfixSuggester, które jest jak AnalyzingInfixSuggester ale boosts sugestie, które dopasowane tokeny z niższych pozycjach.
- Dodane SimpleQueryParser. parser zapytań ludzkich wprowadzone
- Dodane multitermquery (symbole wieloznaczne, prefix, itp) do PostingsHighlighter.
Co nowego w wersji 4.6.0:
- Dodano wsparcie dla aktualizacji pola NumericDocValues (bez ponownego indeksowania dokumentu) przez IndexWriter.updateNumericDocValue (Term, String, Long).
- Nowy FreeTextSuggester można przewidzieć następny wyraz za pomocą prostego modelu języka ngram pożytecznego dla & quot; długi ogon & quot; sugestie.
- Nowy moduł pozwala na indywidualne wyrażenie rankingu składni skryptu-podobne.
- Nowy DirectDocValuesFormat może pomieścić wszystkie wartości doc w sterty jako nieskompresowany Java Native tablic.
- Term.hasFreqs może teraz określić, czy dane pole indeksowane per-doc
- częstotliwości termin.
Co nowego w wersji 4.5.0:
- Nowe implementacje DocIdSet w pamięci, które są szczególnie lepiej niż FixedBitSet małych zestawów. WAH8DocIdSet, PFORDeltaDocIdSet i EliasFanoDocIdSet
- CachingWrapperFilter teraz buforuje filtry z WAH8DocIdSet domyślnie, która ma taką samą zużycie pamięci jako FixedBitSet w najgorszym wypadku, ale jest mniejszy i szybszy od małych zestawów.
- TokenStreams teraz ustawić przyrost pozycji w końcu (), dzięki czemu możemy obsłużyć końcowe otwory.
- IndexWriter nie klonuje dany IndexWriterConfig.
- Różne poprawki i optymalizacje od wydania 4.4.
Co nowego w wersji 4.4.0:
- Nowy moduł replikatora: replikowania zmian indeksu pomiędzy serwerem i klient.
- Nowy AnalyzingInfixSuggester. znajdzie sugestie na podstawie meczów na wszelkie tokenów w sugestii, a nie tylko na podstawie czystej dopasowywania przedrostka
- Nowy PatternCaptureGroupTokenFilter. emitują kilka żetonów, po jednym dla każdej grupy przechwytywania w jednym lub kilku regexes Java
- Moduł Nowy Lucene Facet.
Co nowego w wersji 4.3.0:
- Nowy SearcherTaxonomyManager zarządza niemal w czasie rzeczywistym wznawia od zarówno IndexSearcher i TaxonomyReader (dla szlifowaniem).
- Dodano nową metodę FACET do modułu facet obliczyć korzystając SortedSetDocValuesField liczy się aspekt, bez oddzielnego indeksu taksonomii.
- Znaczne ulepszenia wydajności dla minShouldMatch BooleanQuery ze względu na pomijanie w wyniku czego do 4000% szybciej zapytaniami.
- Różne poprawki i optymalizacje od wydania 4.2.1.
Co nowego w wersji 4.1.0:
- Lucene nie ma podczas zapisywania plików (wszystkie pola zapisywane są w sposób dopisywania-only). Oznacza to, że działa domyślnie z append-only strumieni, HDFS, itd ..,
- Nowy sugerują implementacje: AnalyzingSuggester, gdzie forma podstawowa (obliczane z Lucene Analyzer) używanego do sugestii jest oddzielone od zwróconego tekstu i FuzzySuggester, co dodatkowo pozwala na niedokładnego dopasowania na wejściu .
- Prawie dodano wsparcie w czasie rzeczywistym do modułu facet.
- Nowy Highlighter (postingshighlighter) dodana do modułu wyróżnienia.
- Dodane FilterStrategy do FilteredQuery większą elastyczność w przefiltrowanej wykonania zapytania.
- Dodane CommonTermsQuery przyspieszyć zapytania o bardzo bardzo często chodzi. Częstotliwości terminowe są skutecznie wykrywane w czasie kwerendy. - Nie ma czasu indeksu wymaganego przygotowania
- Kilka poprawek i optymalizacji Od wydania 4.0.
Co nowego w wersji 4.0-alfa:
- Formaty indeksu dla terminów, listy Oferty, przechowywane Pola, termin
- wektory itp są podłączany poprzez api Codec. Możesz wybrać jedną z przewidzianych wdrożeń lub dostosować format indeksu z własnym Codec do swoich potrzeb.
- Znacznie wyższą wydajność podczas korzystania z filtra podczas wyszukiwania.
- systemu plików mogą oceniać limitu IO (MB / s) wątków seryjnej, aby zmniejszyć IO niezgody między łączenie i wyszukiwanie tematów.
- FuzzyQuery jest 100-200 razy szybciej niż w poprzednich wersjach.
- Nowy sprawdzania pisowni, DirectSpellChecker, znajdzie ewentualnych korekt
- bezpośrednio na głównym indeksie wyszukiwarki bez odrębnego indeksu.
katalogi oparte
Co nowego w wersji 3.6.0:
- Oprócz Java 5 i Java 6, tym ma teraz pełne wsparcie Java 7 (wymagane minimum 7u1 JDK) rozwiązanie.
- Filtry TypeTokenFilter tokeny na podstawie ich TypeAttribute.
- Poprawiono błędy offsetowych w wielu CharFilters, Tokenizers i TokenFilters które mogą prowadzić do wyjątków podczas podkreślając.
- Dodane fonetyczne enkodery: Metaphone, SOUNDEX, Caverphone, Beider-Morse, itp .
- CJKBigramFilter i CJKWidthFilter wymienić CJKTokenizer.
- Kuromoji analizator morfologiczny tokenizes tekst japoński, produkujących zarówno wyrazów złożonych i ich segmentacji.
- Statyczne indeksu przycinanie (Carmel przycinanie) usuwa komentarze o niskiej częstotliwości w-dokumentu termin.
- QueryParser teraz interpretuje "*" jako otwarty koniec dla zapytań zasięgu.
- FieldValueFilter wyklucza dokumentów brakujących danego pola.
- CheckIndex i IndexUpgrader pozwalają określić konkretną realizację FSDirectory do korzystania z nowej opcji -dir-impl wiersza polecenia.
- FSTS może teraz nie odwrotnego wyszukiwania (poprzez wyjście), w niektórych przypadkach i może być pakowane, aby zmniejszyć ich rozmiar. Obecnie istnieje metoda, aby pobrać góry N najkrótsze ścieżki od węzła początkowego w FST.
- Nowy WFSTCompletionLookup zausznika drobniej ziarniste obsługuje rankingu sugestie.
- suggesters oparte FST teraz używać w trybie offline (dyskowych) rodzaj, zamiast w pamięci rodzaju, kiedy wstępnie sortowania sugestie.
- ToChildBlockJoinQuery łączy w przeciwnym kierunku (rodzica do dokumentów podrzędnych).
- Nowe połączenie w czasie kwerendy jest bardziej elastyczny (ale mniej wydajny) niż wskaźnik czasu łączy.
- Dodane HTMLStripCharFilter rozebrać znaczników HTML.
Co nowego w wersji 3.5.0:
- Dodane bardzo znaczna (3-5X) pamięci RAM wymagane zmniejszenie trzymać indeks terminów na otwarcie IndexReader.
- Dodane IndexSearcher.searchAfter która zwraca wyniki po określonym ScoreDoc ostatniego dokumentu (na przykład na poprzedniej stronie), aby wspierać głębokie przypadków użycia stronicowania.
- Dodane SearcherManager zarządzać udostępnianie i ponowne otwarcie IndexSearchers w wielu wątkach wyszukiwania. Podstawowe przypadki IndexReader są bezpiecznie zamknięte, jeśli nie odwołuje się już.
- Dodane SearcherLifetimeManager które bezpiecznie zapewnia spójny obraz indeksu na wielu wniosków (np stronicowania / drążenia).
- Zmiana nazwy IndexWriter.optimize do forceMerge zniechęcić korzystania z tej metody, ponieważ jest strasznie kosztowne i rzadko uzasadnione więcej.
Co nowego w wersji 3.3.0:
- Moduł sprawdzania pisowni zawiera teraz sugerują / autouzupełniania funkcjonalność, z trzech wdrożeń. Jaspell, Ternary TRIE i państwowych skończonych
- Wsparcie dla łączenia wyników z wielu kawałków, zarówno dla & quot; normalnie & quot; Wyniki wyszukiwania (TopDocs.merge) oraz zgrupowane wyniki uzyskane przy zastosowaniu grupowania moduł (SearchGroup.merge, TopGroups.merge).
- Zoptymalizowane realizacja KStem, mniej agresywnym Stemmer w języku angielskim.
- w jednym przebiegu grupowania wdrożenie w oparciu o indeksowanie dokumentów bloku.
- Poprawki do MMapDirectory (obecnie również domyślna implementacja zwrócony przez FSDirectory.open na 64-bitowym systemie Linux).
- NRTManager upraszcza obsługę niemal wyszukiwania w czasie rzeczywistym z wielu wątków wyszukiwania, dzięki czemu aplikacja do kontroli, które indeksowanie zmian muszą być widoczne, do którego wnioski wyszukiwania.
- TwoPhaseCommitTool ułatwia wykonanie multi-zasobem dwufazowe zobowiązać, w tym IndexWriter.
- Domyślna polityka seryjnej, TieredMergePolicy, ma nową metodę (set / getReclaimDeletesWeight) do kontrolowania, jak agresywnie, że cele segmenty z skreśleń i jest teraz bardziej agresywne niż przed domyślnie.
- Narzędzie PKIndexSplitter dzieli indeksu przez okres połowy punktu.
Co nowego w wersji 3.2.0:
- Nowy moduł grupowania pod Lucene / contrib / grupowanie, umożliwia wyniki wyszukiwania mają być pogrupowane według jednego wartościami pola indeksowanego.
- Nowe narzędzie IndexUpgrader pełni zamienia stary indeks do obecnej postaci.
- Nowa realizacja katalog, NRTCachingDirectory, buforuje małe segmenty w pamięci RAM, aby zmniejszyć obciążenie I / O dla zastosowań z szybko NRT ponownie ceny.
- Nowa realizacja kolektora, CachingCollector, jest w stanie zebrać hity wyszukiwania (identyfikatorów dokumentów i ewentualnie także zdobywa), a następnie odtwarzać je. Jest to przydatne dla kolekcjonerów, które wymagają dwóch lub więcej przejść, aby uzyskane wyniki.
- Indeks blok dokument przy użyciu nowych metod addDocuments lub updateDocuments w IndexWriter. Te eksperymentalne API zapewniają, że blok dokumentów na zawsze pozostanie ciągły w indeksie, co umożliwia ciekawą przyszłość, takich jak grupowanie i łączy.
- Nowa polityka domyślna seryjnej, TieredMergePolicy, które jest bardziej efektywne ze względu na możliwość scalania nieciągłych segmentów.
- NumericField jest teraz wrócił poprawnie podczas ładowania zapisanego dokumentu (wcześniej otrzymaniu normalne pole powrotem, z przekształcony łańcucha wartości numeryczne).
Co nowego w wersji 3.1.0:.
- ConstantScoreQuery teraz pozwala bezpośrednio owijania Query
- IndexWriter jest teraz skonfigurowany z odrębnego nowego API budowniczy, IndexWriterConfig. Teraz można kontrolować wewnętrzną granicę ustaloną wcześniej wątek IndexWriter nazywając setMaxThreadStates.
- IndexWriter.getReader zastępuje IndexReader.open (IndexWriter). Ponadto można teraz określić, czy Usuwa powinny być rozwiązane podczas otwierania czytnika NRT.
- MultiSearcher jest przestarzała; ParallelMultiSearcher została wchłonięta bezpośrednio do IndexSearcher.
- Na 64-bitowych systemach Windows i Solaris JVMs, MMapDirectory jest domyślna implementacja (zwrócony przez FSDirectory.open). MMapDirectory umożliwia również usuwanie mapowań jeśli JVM obsługuje go.
- Nowy TotalHitCountCollector prostu zlicza całkowitą liczbę odsłon.
- ReaderFinishedListener API umożliwia bufory zewnętrznych eksmisji wpisów po zakończeniu segmentu.
Co nowego w wersji 3.0.1:.
- Usuń niepotrzebne synchronizacji w FuzzyTermEnum
- Po rozwiązaniu usunięte warunki, zrobić w perspektywie porządku sortowania dla lepszej wydajności.
- Nie nieprawidłowo utrzymać ostrzeżenie o tym samym ogromną okresie, kiedy IndexWriter.infoStream jest na.
- Fix Min / MaxPayloadFunction zwraca 0, gdy tylko jeden ładunek jest obecny.
- Zapytania składa się z wszystkich klauzul zero-Boost (na przykład tekst: bla ^ 0) klasyfikowane nieprawidłowo i produkowane nieprawidłowe docids .
- Usunięto chronione klasa wewnętrzna ScoreTerm z FuzzyQuery. Zmiana była potrzebna, ponieważ komparator tej klasy musiały zostać zmienione w niezgodnym sposób. Klasa nigdy nie miało być publiczne.
Co jest nowa w wersji 2.9.2:
- BooleanQuery ignorował disableCoord w hashcode i wynosi metod , bo złe rzeczy się stanie, gdy buforowanie BooleanQueries.
- Nie nieprawidłowo utrzymać ostrzeżenie o tym samym ogromną okresie, kiedy IndexWriter.infoStream jest na.
- Przy wysokich cenach indeksowania, czytelnik może czasowo stracić NTZ usunięcia.
Co nowego w wersji 3.0.0:
- Usunięto właściwości systemu, aby ustawić SegmentReader realizację klasy.
- Zmień typ powrót SnapshotDeletionPolicy # migawki () z IndexCommitPoint do IndexCommit. Kod, który korzysta z tej metody wymaga rekompilacji przeciwko Lucene 3.0 w celu podjęcia pracy. Wcześniej przestarzałe IndexCommitPoint również zostanie usunięty.
- Podaj AttributeFactory spożywczy, który tworzy instancję Reklamowe dla wszystkich podstawowych atrybutów.
- Usuń rekurencji w NumericRangeTermEnum.
- Optymalizacja Levenshteina Odległość obliczeń w FuzzyQuery.
Komentarze nie znaleziono