. Temel olarak 'ilk 10 girdiyi' (bazı parametrelere göre), ardından 'sonraki 10 giriş' ve daha fazlasını aramam gerekiyor. Ve aynı zamanda Lucene'nin belleklerini almasını istemiyorum. Her türlü tavsiye takdir edilecektir. Şimdiden teşekkürler.lucene'de sayfalandırma nasıl elde edilir? bu doğal sayfalandırma desteklemediği, Lucene sayfalandırma ulaşmak için nasıl merak
cevap
.
IList<Document> luceneDocuments = new List<Document>();
IndexReader indexReader = new IndexReader(directory);
Searcher searcher = new IndexSearcher(indexReader);
TopDocs results = searcher.Search("Your Query", null, skipRecords + takeRecords);
ScoreDoc[] scoreDocs = results.scoreDocs;
for (int i = skipRecords; i < results.totalHits; i++)
{
if (i > (skipRecords + takeRecords) - 1)
{
break;
}
luceneDocuments.Add(searcher.Doc(scoreDocs[i].doc));
}
Sen searcher.Doc yöntemi denir kadar endeks içinde yer alan veri gerçekten kullanılmaz olarak scoreDocs dizi yineleme hafif olacağı bulacaksınız.
bu örnek Lucene.Net 2.3.2 biraz değiştirilmiş bir sürümü karşı yazılmış olduğunu unutmayın, ancak temel anapara Lucene herhangi yeni bir sürümü mücadele etmelidir. Kane'in kod parçası ile devamKatılıyorum , Lucene sonuçları kolayca performans sorunları ile uğraşmak zorunda kalmadan özel sayfalama yöntemlerini hayata geçirebilmesi için bir veritabanı sorgulama ederken yüksek sayfalandırma numarası arama yavaş oluyor seti büyük veri aradığınızda –
burada sorunudur sonuçları kadar ağır değildir . Bir şey aradığınız gibi, aramanın bir kısmını atlayın. – Ruwantha
döngü başka bir sürümü;
....................
ScoreDoc[] scoreDocs = results.scoreDocs;
int pageIndex = [User Value];
int pageSize = [Configured Value];
int startIndex = (pageIndex - 1) * pageSize;
int endIndex = pageIndex * pageSize;
endIndex = results.totalHits < endIndex? results.totalHits:endIndex;
for (int i = startIndex ; i < endIndex ; i++)
{
luceneDocuments.Add(searcher.Doc(scoreDocs[i].doc));
}
Sayfalama yapmak için aşağıdaki yolu kullanıyorum, birisi yardımcı olabilir. Daha iyi bir strateji biliyorsanız, özellikle performans bakış açısından, lütfen paylaşın.
public TopDocs search(String query, int pageNumber) throws IOException, ParseException {
Query searchQuery = parser.parse(query);
TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true);
int startIndex = (pageNumber - 1) * MyApp.SEARCH_RESULT_PAGE_SIZE;
searcher.search(searchQuery, collector);
TopDocs topDocs = collector.topDocs(startIndex, MyApp.SEARCH_RESULT_PAGE_SIZE);
return topDocs;
}
- 1. sayfalandırma sayfa
- 2. UIWebView sayfalandırma
- 3. Titremesiz Meteor'da sayfalandırma nasıl yapılır?
- 4. Cancan ile sayfalandırma nasıl yapılır?
- 5. PHP arama sonuçları için sayfalandırma
- 6. Kargo Toplu geleneksel sayfalandırma
- 7. gizle sayfalandırma düğmeleri:
- 8. Matara mongoengine sayfalandırma
- 9. Python ve Django'da Sayfalandırma
- 10. datatables sayfalandırma düğmeleri - Kaldır
- 11. Dizin Oluşturma ve Sayfalandırma
- 12. Pandalar üzerinde sayfalandırma dataframe.to_html()
- 13. açısal datatables sunucu sayfalandırma
- 14. WordPress sayfalandırma düzgün çalışmıyor
- 15. Ekran etiketi sayfalandırma sorunu
- 16. LongListSelector ile Sürekli Sayfalandırma
- 17. Sayfalandırma ile bileşik filtreleme AngularJs
- 18. ASP.Net: Tekrarlayıcı ile sayfalandırma nasıl yapılır?
- 19. Liste zaten sağlanmışsa, sınıflandırma sayfalandırma nasıl kullanılır?
- 20. Android liste görünümünde sayfalandırma nasıl gerçekleştirilir?
- 21. Kaminari sayfalandırma sonrası toplam sayım nasıl olur
- 22. Wordpress çoklu döngü ve sayfalandırma
- 23. Sayfalandırma sayfalarında dizin nasıl alınır? vuejs içinde
- 24. Neo4j - Ruby on Rails'den sayfalandırma
- 25. Sayfalandırma için bir sayfa belirtin - Laravel 4
- 26. ikinci sayfa kaydırıcısında sayfalandırma gösterilmiyor
- 27. jqGrid ile istemci tarafı sayfalandırma
- 28. Laravel 5.1 Sayfalandırma için geçerli sayfa belirtme
- 29. Tutarsız sayfalandırma bağlantılarını gösteren Google CustomSearchControl
- 30. Sayfalandırma ile MySql sorgusundaki rasgele değerler
onay bu yazı onaylanan cevap: [Lucene 4 sayfalandırmayı] [1] [1]: http://stackoverflow.com/a/24533377/1080485 –