aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-06-12 11:11:18 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-06-12 11:11:18 +0000
commit9c500e2e0f518a91e3bf67dd5394e8b385d11c26 (patch)
tree89e0f6683a803a786c3ff1cd61f3fd052874238f /searchcore
parent4b044d83f36a296afec6778eff38f76395a36a5e (diff)
Expose absolute values for document frequency in ITermFieldData (as needed by bm25 feature).
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp9
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/querynodes.h2
2 files changed, 5 insertions, 6 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
index 6d810594aa7..bb8a669f91a 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
+++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
@@ -34,10 +34,10 @@ ProtonTermData & ProtonTermData::operator = (const ProtonTermData &) = default;
ProtonTermData::~ProtonTermData() = default;
void
-ProtonTermData::setDocumentFrequency(double freq)
+ProtonTermData::propagate_document_frequency(uint32_t matching_doc_count, uint32_t total_doc_count)
{
for (size_t i = 0; i < _fields.size(); ++i) {
- _fields[i].setDocFreq(freq);
+ _fields[i].setDocFreq(matching_doc_count, total_doc_count);
}
}
@@ -97,10 +97,9 @@ void
ProtonTermData::setDocumentFrequency(uint32_t estHits, uint32_t docIdLimit)
{
if (docIdLimit > 1) {
- double hits = estHits;
- setDocumentFrequency(hits / (docIdLimit - 1));
+ propagate_document_frequency(estHits, docIdLimit - 1);
} else {
- setDocumentFrequency(0.0);
+ propagate_document_frequency(0, 1);
}
}
diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
index 8cf65c1e67b..6454845b247 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
+++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
@@ -47,7 +47,7 @@ public:
private:
std::vector<FieldEntry> _fields;
- void setDocumentFrequency(double docFreq);
+ void propagate_document_frequency(uint32_t matching_count_doc, uint32_t total_doc_count);
protected:
void resolve(const ViewResolver &resolver,