Używam Lucene, aby wyświetlać wyniki wyszukiwania w aplikacji internetowej. Mam również niestandardowe stronicowanie, które pokazuje to samo. Wyniki wyszukiwania mogą się różnić od 5000 do 10000 lub więcej. Czy ktoś może mi powiedzieć najlepszą strategię stronicowania i buforowania wyników wyszukiwania?Wyniki wyszukiwania Paging Lucene
Odpowiedz
Zalecam, aby nie buforować wyników, przynajmniej na poziomie aplikacji. Ułatwia to działanie Lucene na pudełku z dużą ilością pamięci, którą system operacyjny może wykorzystać do swojej pamięci podręcznej plików.
Po prostu powtórz wyszukiwanie z innym przesunięciem dla każdej strony. Buforowanie wprowadza stanowość, która ostatecznie podważa wydajność. Mamy setki równoczesnych użytkowników przeszukujących indeks ponad 40 milionów dokumentów. Wyszukiwanie zakończy się w czasie krótszym niż jedna sekunda bez użycia jawnego buforowania.
Korzystanie przedmiotem Hits
wrócił z wyszukiwania, można uzyskać dostęp do dokumentów na stronie tak:
Hits hits = searcher.search(query);
int offset = page * recordsPerPage;
int count = Math.min(hits.length() - offset, recordsPerPage);
for (int i = 0; i < count; ++i) {
Document doc = hits.doc(offset + i);
...
}
Czy nadal nie masz problemów z wydajnością? –
Witaj, erickson ... czy możesz mi powiedzieć, od której wersji lucene obsługuje metodę wyszukiwania, która przyjmuje tylko 1 argument zapytania ... a także jest możliwe sortowanie za pomocą tego rozwiązania. ??? –
@AshaKoshti Forever? To było w wersji 1.4.3, wydanej w 2004 roku. Nie mogę znaleźć wersji starszej niż w archiwach. Tak, istnieje również przeładowanie 'search (Query, Sort)' na 'Searcherze'. – erickson
- 1. Wyniki Lucene Wyniki
- 2. Lucene: porównaj wyniki dla zapytań
- 3. Złożoność wyszukiwania Lucene
- 4. Zapytanie o wszystkie wyniki w Lucene IndexSearcher
- 5. Używanie Lucene do wyszukiwania adresów e-mailowych
- 6. Jak wyświetlić wyniki wyszukiwania Wordpress?
- 7. Spersonalizowane wyniki wyszukiwania dla Elasticsearch
- 8. Daper. Paging
- 9. Lucene: Wyrażenia składające się z wielu wyrazów jako kryteria wyszukiwania
- 10. Hostowane opcje wyszukiwania pełnotekstowego - IndexTank vs Solr vs Lucene
- 11. Odśwież wyniki wyszukiwania Google dla mojej witryny
- 12. Wyniki wyszukiwania Linq według najbliższego dopasowania
- 13. Jak wykryć datę w kwerendzie wyszukiwania wolnego tekstu Lucene?
- 14. Paging pageing z linq
- 15. Paging kolekcja z LINQ
- 16. NHibernate + Paging + Zamawianie
- 17. LINQ do SQL Paging
- 18. solr/lucene idf wynik
- 19. Zend Lucene czy sfinks?
- 20. Wyszukiwanie wielozadaniowe w Lucene
- 21. Lucene w Androidzie
- 22. UITextView Paging Enabled Tekst obcięty
- 23. GridView (RadGrid) i Custom Paging
- 24. NHibernate + SqlServer pełny tekst wyszukiwania
- 25. Indeksowanie strukturalne i nieustrukturyzowane - Lucene i Hbase
- 26. Java Lucene NGramTokenizer
- 27. Przeszukaj pola w Lucene
- 28. Lucene Highlighter z analizatorem analizatora obrazu
- 29. lucene/python
- 30. Wyniki wyszukiwania Sugestia wyświetlane jako puste/nie tekst
Ten użytkownik wydaje się być ponownie prosząc te same lub podobne pytania wielokrotnie: http: // stackoverflow. com/users/41625/meyahoocomaodzxyowykprbavs5sf701zowgzpc3svjv8 Sprawdź rekord wpisu, zanim poświęcisz czas na odpowiedź ... –