diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-06-12 11:11:18 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-06-12 11:11:18 +0000 |
commit | 9c500e2e0f518a91e3bf67dd5394e8b385d11c26 (patch) | |
tree | 89e0f6683a803a786c3ff1cd61f3fd052874238f /searchcore | |
parent | 4b044d83f36a296afec6778eff38f76395a36a5e (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.cpp | 9 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matching/querynodes.h | 2 |
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, |