Sie können während der Indizierung erhöhen, es ist seit einiger Zeit in RavenDB, aber es ist überhaupt nicht in der Dokumentation. Es gibt jedoch einige Komponententests, die here veranschaulichen.
Diese Tests zeigen einen einzelnen Boost-Wert, der jedoch einfach aus anderen Dokumentwerten berechnet werden kann. Sie haben das vollständige Dokument verfügbar, da dies beim Schreiben der Indexeinträge erfolgt. Sie sollten dies mit der Technik kombinieren können, die in dem Beitrag beschrieben ist, auf den Sie verwiesen haben.
Map = docs => from doc in docs
select new
{
Title = doc.Title.Boost(doc.DateCreated.Ticks/1000000f)
};
Sie können auch das gesamte Dokument steigern, statt nur das Feld Titel, die nützlich sein könnte, wenn Sie in Ihrem Suchalgorithmus anderen Bereichen haben:
Map = docs => from doc in docs
select new
{
doc.Title
}.Boost(doc.DateCreated.Ticks/1000000f);
Sie müssen möglicherweise mit dem Recht experimentieren Wert für den Boost-Betrag. Es gibt 10.000 Ticks in einer Millisekunde, deshalb teile ich durch eine so große Zahl.
Seien Sie auch vorsichtig, dass die DateTime
, mit der Sie arbeiten, in UTC ist, oder wenn Sie keine Kontrolle darüber haben, woher es kommt, dann verwenden Sie stattdessen eine . Warum? Weil Sie eine berechnete Dauer von einem Referenzpunkt aus verwenden und nicht möchten, dass das Ergebnis für verschiedene Zeitzonen oder Sommerzeitänderungen mehrdeutig ist.
danke für den Link zu den Boost-Docs, aber wie würdest du durch Aktualität steigern? Ich habe meine Frage ein wenig aktualisiert, um sie hoffentlich zu klären. –
Danke für die Klarstellung. Lass mich ein bisschen darüber nachdenken. Es sollte möglich sein, etwas Rabenaroma der Technik zu verwenden, die in dem Beitrag beschrieben ist, den Sie verlinkt haben. –
Die Antwort wurde aktualisiert. Ich hoffe, das ergibt das Ergebnis, das Sie suchen! –