Dizin saatinde şu şekilde bir belgeyi destekliyorum:Lucene'de, neden güçlendirilmiş ve yüklenmemiş belgelerim aynı puanı alıyor?
if (myCondition)
{
document.SetBoost(1.2f);
}
Ancak arama süresi belgelerinde tümüyle aynı niteliklere sahip ama bazı geçişler ve bazı başarısız myCondition hepsi aynı puanı alıyor.
Ve şu sitedeki arama kodları:
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.Add(new TermQuery(new Term(FieldNames.HAS_PHOTO, "y")), BooleanClause.Occur.MUST);
booleanQuery.Add(new TermQuery(new Term(FieldNames.AUTHOR_TYPE, AuthorTypes.BLOGGER)), BooleanClause.Occur.MUST_NOT);
indexSearcher.Search(booleanQuery, 10);
Daha yüksek puanlar almak için desteklediğim belgeleri almak için ne yapmam gerektiğini söyleyebilir misiniz?
Çok teşekkürler!
"Bu şekilde indekslediğim, bu şekilde arama yaptığım ve bu işlemin çalışmadığı" (kodun okuyucunun hayal gücüne bir şey bırakmadan çalışma kodu) olduğunu gösteren minimum bir kod göndermenizi tavsiye ederim. –
Kesinlikle uzman değilim, ancak indeksinizi Luke'a yüklemeyi ve her bir belge için yükseltme değerlerini kontrol etmeyi denemelisiniz. Ayrıca, ne tür bir sorgu yürütülmekte olduğunu görmek için Explain() yöntem sonucunu da kontrol etmeyi deneyin. Benim tahminim bir ConstantScoreQuery. Lucene belgelerinden: "Başka bir sorguyu veya filtreyi saran ve filtreyle veya sorguyla eşleşen her belge için sorgu artırmaya eşit bir sabit puan döndüren bir sorgu. Bu nedenle, sorgular için tüm puanların şeritleri çıkarılır ve sabit bir değer döndürür. ." Bunu nasıl önleyeceğimi bilmiyorum, ama bu sorgu puanlamayı göz ardı ediyor gibi görünüyor. – goalie7960
@ goalie7960, dokümanlardan başvuru yaptığınız sayfaya bir bağlantı gönderebilir. İhtiyacım olan ipucu o. – Barka