Durumumda, belgelerin iki alanı vardır, örneğin "başlık" ve "görünümler". "views", kullanıcıların bu belgeyi ziyaret ettikleri sayıyı temsil eder. gibi: "title": "iphone", "views": "10". İlgi puanının skor (başlık) * 0.8 + puan (görünümler) * 0.2 ile hesaplanması gibi görünümlere bazı ağırlıklar atayacak bir strateji geliştirmem gerekiyor. Lucene bunu yapabilir mi? Ve bu soruyla ilgili bazı algoritmalar olup olmadığını bilmek istiyorum.Lucene: Bazı belirli alanları nasıl desteklenir
cevap
bunu yapabilir nasıl:
Query titleQuery, viewsQuery;
titleQuery.setBoost(0.8);
viewsQuery.setBoost(0.2);
BooleanQuery query = new BooleanQuery();
query.add(titleQuery, Occur.MUST); // or Occur.SHOULD if this clause is optional
query.add(viewsQuery, Occur.SHOULD); // or Occur.MUST if this clause is required
// use query to search documents
puanı (çarpımsal sabite) 0.8*score(titleQuery) + 0.2*score(viewsQuery)
orantılı olacaktır.
views
alanınızdan yararlanabilmek için, muhtemelen bir ValueSourceQuery kullanmanız gerekir.
3 şekilde hızlandırabilirsiniz. iken indeksleme - - Bir belge dizine eklenmeden önce() document.setBoost arayarak ihtiyaçlarınıza bağlı olarak bir bileşimi artırma
Belge seviyesini istihdam isteyebilirsiniz. İndekslerken - - artırılması
Belgenin Saha seviyesi belgeye bir alan eklemeden önce field.setBoost() çağırarak (ve endeksine belgeyi eklemeden önce).
Sorgulama düzeyi yükseltmesi - Query.setBoost() öğesini aratarak, bir sorgu tümcesinde artış ayarlayarak, araması sırasında.
kaynak: http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/scoring.html İşte
document.setBoost() uzun zaman önce kullanımdan kaldırılmıştır. – Dannyboy
- 1. Fasulye ismini nasıl desteklenir?
- 2. Hangi Ruby sınıfları desteklenir.
- 3. Belirli bir alana sahip tüm lucene değerlerini alınAdı
- 4. Lucene puanları nasıl normalleştirilir?
- 5. Yeni bir kayıt oluştururken, bazı alanları filtreden değerlerle nasıl doldurabilirim?
- 6. Raylar denetleyicisinin yanıtındaki belirli alanları kısıtla
- 7. Tepki Görünümü Ayrı Ayrı Olarak Nasıl Desteklenir
- 8. Belirli alanları .populate() ile Mongoose'dan döndürme
- 9. lucene/python
- 10. Lucene Android
- 11. Lucene QueryParser
- 12. Lucene & Hunspell
- 13. mahout lucene belge kümeleme nasıl?
- 14. Katıştırılmış bir web tarayıcısında window.print() nasıl desteklenir?
- 15. UIStackView, iOS9'un altındaki sürümlerde nasıl desteklenir
- 16. ACTION BAR'ım sağdan sola nasıl desteklenir
- 17. iOS'ta Etiketlerde Dinamik Tür Nasıl Desteklenir 7
- 18. ListDown'da MultiChoiceModeListener nasıl kullanılır ve dışarıdan desteklenir?
- 19. Nginx yapılandırmasında belirli alt etki alanları server_name nasıl hariç tutulur
- 20. Yalnızca Django model formundaki belirli alanları nasıl güncelleyebilirim?
- 21. Lucene MultiFieldQueryParser ile varsayılan bağlantı nasıl değiştirilir
- 22. nasıl alt etki alanları
- 23. Bir Lucene araştırmasının karmaşıklığı
- 24. Lucene 5.3.x'te BooleanQuery oluşturucu nasıl kullanılır?
- 25. Yay Verilerindeki alanları seçme
- 26. anlama lucene segmentleri
- 27. Lucene Vurgulayıcısını kullanarak MultiFieldQueryParser
- 28. $ lookup ile MongoDB aggregation, sorgudan dönmek için bazı alanları sınırlandırıyor
- 29. Django - Inline Yönetici Arabirimi'nde bazı alanları hariç tutmak
- 30. Lucene ile tekli Xml dosyası
eğer bunu anladığımda, trueyl setBoost kullanımdan kaldırıldı ve bu günlerde https://lucene.apache.org/core/5_5_0/core/org/apache/lucene/search/BoostQuery.html shoudl kullanıldı – Dannyboy