summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/document_value/document.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/document_value/document.cpp')
-rw-r--r--src/mongo/db/exec/document_value/document.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/db/exec/document_value/document.cpp b/src/mongo/db/exec/document_value/document.cpp
index fd50895c9a1..4488af81f3b 100644
--- a/src/mongo/db/exec/document_value/document.cpp
+++ b/src/mongo/db/exec/document_value/document.cpp
@@ -90,7 +90,8 @@ const StringDataSet Document::allMetadataFieldNames{Document::metaFieldTextScore
Document::metaFieldSearchHighlights,
Document::metaFieldSearchSortValues,
Document::metaFieldIndexKey,
- Document::metaFieldSearchScoreDetails};
+ Document::metaFieldSearchScoreDetails,
+ Document::metaFieldVectorSearchScore};
DocumentStorageIterator::DocumentStorageIterator(DocumentStorage* storage, BSONObjIterator bsonIt)
: _bsonIt(std::move(bsonIt)),
@@ -467,6 +468,8 @@ void DocumentStorage::loadLazyMetadata() const {
_metadataFields.setSearchScoreDetails(elem.Obj());
} else if (fieldName == Document::metaFieldSearchSortValues) {
_metadataFields.setSearchSortValues(elem.Obj());
+ } else if (fieldName == Document::metaFieldVectorSearchScore) {
+ _metadataFields.setVectorSearchScore(elem.Double());
}
}
}
@@ -537,6 +540,7 @@ constexpr StringData Document::metaFieldSearchScore;
constexpr StringData Document::metaFieldSearchHighlights;
constexpr StringData Document::metaFieldSearchScoreDetails;
constexpr StringData Document::metaFieldSearchSortValues;
+constexpr StringData Document::metaFieldVectorSearchScore;
void Document::toBsonWithMetaData(BSONObjBuilder* builder) const {
toBson(builder);
@@ -567,6 +571,9 @@ void Document::toBsonWithMetaData(BSONObjBuilder* builder) const {
if (metadata().hasSearchSortValues()) {
builder->append(metaFieldSearchSortValues, metadata().getSearchSortValues());
}
+ if (metadata().hasVectorSearchScore()) {
+ builder->append(metaFieldVectorSearchScore, metadata().getVectorSearchScore());
+ }
}
Document Document::fromBsonWithMetaData(const BSONObj& bson) {