summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchlib/src/vespa/searchlib/attribute/createsinglefastsearch.cpp33
-rw-r--r--searchlib/src/vespa/searchlib/attribute/createsinglestd.cpp49
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp12
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp10
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp50
6 files changed, 61 insertions, 95 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/createsinglefastsearch.cpp b/searchlib/src/vespa/searchlib/attribute/createsinglefastsearch.cpp
index cdb7e1807ba..0e1cfaa3c09 100644
--- a/searchlib/src/vespa/searchlib/attribute/createsinglefastsearch.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/createsinglefastsearch.cpp
@@ -5,15 +5,9 @@
#include "floatbase.h"
#include "defines.h"
#include "singlestringattribute.h"
+#include "singleboolattribute.h"
#include "singlestringpostattribute.hpp"
-#include "singlenumericenumattribute.hpp"
#include "singlenumericpostattribute.hpp"
-#include "enumstore.hpp"
-#include "enumattribute.hpp"
-#include "singleenumattribute.hpp"
-
-#include <vespa/log/log.h>
-LOG_SETUP(".searchlib.attribute.create_single_fast_search");
#define INTPOSTING(T) SingleValueNumericPostingAttribute< ENUM_ATTRIBUTE(IntegerAttributeTemplate<T>) >
#define FLOATPOSTING(T) SingleValueNumericPostingAttribute< ENUM_ATTRIBUTE(FloatingPointAttributeTemplate<T>) >
@@ -27,37 +21,30 @@ AttributeFactory::createSingleFastSearch(stringref name, const Config & info)
{
assert(info.collectionType().type() == attribute::CollectionType::SINGLE);
assert(info.fastSearch());
- AttributeVector::SP ret;
switch(info.basicType().type()) {
case BasicType::BOOL:
+ return std::make_shared<SingleBoolAttribute>(name, info.getGrowStrategy());
case BasicType::UINT2:
case BasicType::UINT4:
break;
case BasicType::INT8:
- ret.reset(new INTPOSTING(int8_t)(name, info));
- break;
+ return std::make_shared<INTPOSTING(int8_t)>(name, info);
case BasicType::INT16:
- ret.reset(new INTPOSTING(int16_t)(name, info));
- break;
+ return std::make_shared<INTPOSTING(int16_t)>(name, info);
case BasicType::INT32:
- ret.reset(new INTPOSTING(int32_t)(name, info));
- break;
+ return std::make_shared<INTPOSTING(int32_t)>(name, info);
case BasicType::INT64:
- ret.reset(new INTPOSTING(int64_t)(name, info));
- break;
+ return std::make_shared<INTPOSTING(int64_t)>(name, info);
case BasicType::FLOAT:
- ret.reset(new FLOATPOSTING(float)(name, info));
- break;
+ return std::make_shared<FLOATPOSTING(float)>(name, info);
case BasicType::DOUBLE:
- ret.reset(new FLOATPOSTING(double)(name, info));
- break;
+ return std::make_shared<FLOATPOSTING(double)>(name, info);
case BasicType::STRING:
- ret.reset(new SingleValueStringPostingAttribute(name, info));
- break;
+ return std::make_shared<SingleValueStringPostingAttribute>(name, info);
default:
break;
}
- return ret;
+ return AttributeVector::SP();
}
}
diff --git a/searchlib/src/vespa/searchlib/attribute/createsinglestd.cpp b/searchlib/src/vespa/searchlib/attribute/createsinglestd.cpp
index 7bd96b5cbb2..a0cf47f64e0 100644
--- a/searchlib/src/vespa/searchlib/attribute/createsinglestd.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/createsinglestd.cpp
@@ -4,16 +4,12 @@
#include "predicate_attribute.h"
#include "singlesmallnumericattribute.h"
#include "reference_attribute.h"
-#include "attributevector.hpp"
#include "singlenumericattribute.hpp"
#include "singlestringattribute.h"
#include "singleboolattribute.h"
#include <vespa/searchlib/tensor/generic_tensor_attribute.h>
#include <vespa/searchlib/tensor/dense_tensor_attribute.h>
-#include <vespa/log/log.h>
-LOG_SETUP(".searchlib.attribute.create_single_std");
-
namespace search {
using attribute::BasicType;
@@ -22,55 +18,42 @@ AttributeVector::SP
AttributeFactory::createSingleStd(stringref name, const Config & info)
{
assert(info.collectionType().type() == attribute::CollectionType::SINGLE);
- AttributeVector::SP ret;
switch(info.basicType().type()) {
case BasicType::BOOL:
- ret.reset(new SingleBoolAttribute(name, info.getGrowStrategy()));
- break;
+ return std::make_shared<SingleBoolAttribute>(name, info.getGrowStrategy());
case BasicType::UINT2:
- ret.reset(new SingleValueSemiNibbleNumericAttribute(name, info.getGrowStrategy()));
- break;
+ return std::make_shared<SingleValueSemiNibbleNumericAttribute>(name, info.getGrowStrategy());
case BasicType::UINT4:
- ret.reset(new SingleValueNibbleNumericAttribute(name, info.getGrowStrategy()));
- break;
+ return std::make_shared<SingleValueNibbleNumericAttribute>(name, info.getGrowStrategy());
case BasicType::INT8:
- ret.reset(new SingleValueNumericAttribute<IntegerAttributeTemplate<int8_t> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<IntegerAttributeTemplate<int8_t>>>(name, info);
case BasicType::INT16:
// XXX: Unneeded since we don't have short document fields in java.
- ret.reset(new SingleValueNumericAttribute<IntegerAttributeTemplate<int16_t> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<IntegerAttributeTemplate<int16_t>>>(name, info);
case BasicType::INT32:
- ret.reset(new SingleValueNumericAttribute<IntegerAttributeTemplate<int32_t> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<IntegerAttributeTemplate<int32_t>>>(name, info);
case BasicType::INT64:
- ret.reset(new SingleValueNumericAttribute<IntegerAttributeTemplate<int64_t> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<IntegerAttributeTemplate<int64_t>>>(name, info);
case BasicType::FLOAT:
- ret.reset(new SingleValueNumericAttribute<FloatingPointAttributeTemplate<float> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<FloatingPointAttributeTemplate<float>>>(name, info);
case BasicType::DOUBLE:
- ret.reset(new SingleValueNumericAttribute<FloatingPointAttributeTemplate<double> >(name, info));
- break;
+ return std::make_shared<SingleValueNumericAttribute<FloatingPointAttributeTemplate<double>>>(name, info);
case BasicType::STRING:
- ret.reset(new SingleValueStringAttribute(name, info));
- break;
+ return std::make_shared<SingleValueStringAttribute>(name, info);
case BasicType::PREDICATE:
- ret.reset(new PredicateAttribute(name, info));
- break;
+ return std::make_shared<PredicateAttribute>(name, info);
case BasicType::TENSOR:
if (info.tensorType().is_dense()) {
- ret.reset(new tensor::DenseTensorAttribute(name, info));
+ return std::make_shared<tensor::DenseTensorAttribute>(name, info);
} else {
- ret.reset(new tensor::GenericTensorAttribute(name, info));
+ return std::make_shared<tensor::GenericTensorAttribute>(name, info);
}
- break;
case BasicType::REFERENCE:
- ret = std::make_shared<attribute::ReferenceAttribute>(name, info);
- break;
+ return std::make_shared<attribute::ReferenceAttribute>(name, info);
default:
break;
}
- return ret;
+ return AttributeVector::SP();
}
+
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp
index ca6b6caba32..b330be3a2bb 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp
@@ -2,10 +2,10 @@
#pragma once
-#include <vespa/searchlib/attribute/singlenumericpostattribute.h>
-#include <vespa/searchlib/attribute/enumstore.h>
-#include <vespa/searchlib/attribute/enumcomparator.h>
-#include <vespa/searchlib/attribute/singlenumericenumattribute.hpp>
+#include "singlenumericpostattribute.h"
+#include "enumstore.h"
+#include "enumcomparator.h"
+#include "singlenumericenumattribute.hpp"
namespace search {
@@ -141,9 +141,7 @@ AttributeVector::SearchContext::UP
SingleValueNumericPostingAttribute<B>::getSearch(QueryTermSimple::UP qTerm,
const attribute::SearchContextParams & params) const
{
- return std::make_unique<SinglePostingSearchContext>(std::move(qTerm),
- params,
- *this);
+ return std::make_unique<SinglePostingSearchContext>(std::move(qTerm), params, *this);
}
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp
index 59a5a9b8cac..cdf1acedb24 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp
@@ -2,7 +2,7 @@
#pragma once
-#include <vespa/searchlib/attribute/singlestringpostattribute.h>
+#include "singlestringpostattribute.h"
#include <vespa/searchlib/query/query_term_ucs4.h>
namespace search {
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
index 1ca1a336d2d..f1b12d8a227 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
@@ -5,7 +5,6 @@
#include "docsumstate.h"
#include <vespa/searchlib/attribute/stringbase.h>
#include <vespa/searchlib/attribute/integerbase.h>
-#include <vespa/searchlib/attribute/floatbase.h>
#include <vespa/searchlib/attribute/iattributemanager.h>
#include <vespa/searchlib/tensor/i_tensor_attribute.h>
#include <vespa/searchcommon/attribute/iattributecontext.h>
@@ -40,7 +39,7 @@ AttrDFW::vec(const GetDocsumsState & s) const {
class SingleAttrDFW : public AttrDFW
{
public:
- SingleAttrDFW(const vespalib::string & attrName) :
+ explicit SingleAttrDFW(const vespalib::string & attrName) :
AttrDFW(attrName)
{ }
void insertField(uint32_t docid, GetDocsumsState *state, ResType type, Inserter &target) override;
@@ -55,7 +54,6 @@ bool SingleAttrDFW::isDefaultValue(uint32_t docid, const GetDocsumsState * state
void
SingleAttrDFW::insertField(uint32_t docid, GetDocsumsState * state, ResType type, Inserter &target)
{
- const char *s="";
const IAttributeVector & v = vec(*state);
switch (type) {
case RES_INT: {
@@ -116,13 +114,13 @@ SingleAttrDFW::insertField(uint32_t docid, GetDocsumsState * state, ResType type
case RES_FEATUREDATA:
case RES_LONG_STRING:
case RES_STRING: {
- s = v.getString(docid, nullptr, 0); // no need to pass in a buffer, this attribute has a string storage.
+ const char *s = v.getString(docid, nullptr, 0); // no need to pass in a buffer, this attribute has a string storage.
target.insertString(vespalib::Memory(s));
break;
}
case RES_LONG_DATA:
case RES_DATA: {
- s = v.getString(docid, nullptr, 0); // no need to pass in a buffer, this attribute has a string storage.
+ const char *s = v.getString(docid, nullptr, 0); // no need to pass in a buffer, this attribute has a string storage.
target.insertData(vespalib::Memory(s));
break;
}
@@ -138,7 +136,7 @@ SingleAttrDFW::insertField(uint32_t docid, GetDocsumsState * state, ResType type
class MultiAttrDFW : public AttrDFW
{
public:
- MultiAttrDFW(const vespalib::string & attrName) : AttrDFW(attrName) {}
+ explicit MultiAttrDFW(const vespalib::string & attrName) : AttrDFW(attrName) {}
void insertField(uint32_t docid, GetDocsumsState *state, ResType type, Inserter &target) override;
};
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
index eb1cc7f0256..7c4e8834104 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
@@ -99,11 +99,11 @@ createAttribute(const vespalib::string & name, const document::FieldValue & fv)
AttributeVector::SP attr;
if (fv.inherits(document::ByteFieldValue::classId) || fv.inherits(document::IntFieldValue::classId) || fv.inherits(document::LongFieldValue::classId)) {
- attr.reset(new search::SingleIntegerExtAttribute(name));
+ return std::make_shared<search::SingleIntegerExtAttribute>(name);
} else if (fv.inherits(document::DoubleFieldValue::classId) || fv.inherits(document::FloatFieldValue::classId)) {
- attr.reset(new search::SingleFloatExtAttribute(name));
+ return std::make_shared<search::SingleFloatExtAttribute>(name);
} else if (fv.inherits(document::StringFieldValue::classId)) {
- attr.reset(new search::SingleStringExtAttribute(name));
+ return std::make_shared<search::SingleStringExtAttribute>(name);
} else {
LOG(debug, "Can not make an attribute out of %s of type '%s'.", name.c_str(), fv.getClass().name());
}
@@ -120,7 +120,7 @@ SearchVisitor::SummaryGenerator::SummaryGenerator() :
{
}
-SearchVisitor::SummaryGenerator::~SummaryGenerator() { }
+SearchVisitor::SummaryGenerator::~SummaryGenerator() = default;
vespalib::ConstBufferRef
@@ -137,7 +137,7 @@ SearchVisitor::SummaryGenerator::fillSummary(AttributeVector::DocId lid, const H
void SearchVisitor::HitsResultPreparator::execute(vespalib::Identifiable & obj)
{
- HitsAggregationResult & hitsAggr(static_cast<HitsAggregationResult &>(obj));
+ auto & hitsAggr(static_cast<HitsAggregationResult &>(obj));
hitsAggr.setSummaryGenerator(_summaryGenerator);
_numHitsAggregators++;
}
@@ -154,7 +154,7 @@ SearchVisitor::GroupingEntry::GroupingEntry(Grouping * grouping) :
{
}
-SearchVisitor::GroupingEntry::~GroupingEntry() { }
+SearchVisitor::GroupingEntry::~GroupingEntry() = default;
void SearchVisitor::GroupingEntry::aggregate(const document::Document & doc, search::HitRank rank)
{
@@ -175,7 +175,7 @@ SearchVisitor::SearchVisitor(StorageComponent& component,
VisitorEnvironment& vEnv,
const Parameters& params) :
Visitor(component),
- _env(static_cast<SearchEnvironment &>(vEnv)),
+ _env(dynamic_cast<SearchEnvironment &>(vEnv)),
_params(params),
_vsmAdapter(nullptr),
_docSearchedCount(0),
@@ -240,9 +240,9 @@ void SearchVisitor::init(const Parameters & params)
LOG(debug, "QFLAG_DUMP_FEATURES: %s", _rankController.getDumpFeatures() ? "true" : "false");
}
- if (params.lookup("rankproperties", valueRef) && valueRef.size() > 0) {
+ if (params.lookup("rankproperties", valueRef) && ! valueRef.empty()) {
LOG(spam, "Received rank properties of %zd bytes", valueRef.size());
- uint32_t len = static_cast<uint32_t>(valueRef.size());
+ uint32_t len = uint32_t(valueRef.size());
char * data = const_cast<char *>(valueRef.data());
FNET_DataBuffer src(data, len);
uint32_t cnt = src.ReadInt32();
@@ -403,7 +403,7 @@ SearchVisitor::PositionInserter::PositionInserter(AttributeVector & attribute, A
{
}
-SearchVisitor::PositionInserter::~PositionInserter() {}
+SearchVisitor::PositionInserter::~PositionInserter() = default;
void
SearchVisitor::PositionInserter::onPrimitive(uint32_t, const Content & c)
@@ -414,7 +414,7 @@ SearchVisitor::PositionInserter::onPrimitive(uint32_t, const Content & c)
void
SearchVisitor::PositionInserter::onStructStart(const Content & c)
{
- const document::StructuredFieldValue & value = static_cast<const document::StructuredFieldValue &>(c.getValue());
+ const auto & value = static_cast<const document::StructuredFieldValue &>(c.getValue());
LOG(debug, "PositionInserter: Adding value '%s'(%d) to attribute '%s' for docid '%d'",
value.toString().c_str(), c.getWeight(), _attribute.getName().c_str(), _docId);
@@ -445,7 +445,7 @@ SearchVisitor::RankController::processHintedAttributes(const IndexEnvironment &
AttributeGuard::UP attr(attrMan.getAttribute(name));
if (attr->valid()) {
LOG(debug, "Add attribute '%s' with field id '%u' to the list of needed attributes", name.c_str(), fid);
- attributeFields.push_back(AttrInfo(fid, std::move(attr)));
+ attributeFields.emplace_back(fid, std::move(attr));
} else {
LOG(warning, "Cannot locate attribute '%s' in the attribute manager. "
"Ignore access hint about this attribute", name.c_str());
@@ -470,7 +470,7 @@ SearchVisitor::RankController::RankController() :
{
}
-SearchVisitor::RankController::~RankController() {}
+SearchVisitor::RankController::~RankController() = default;
void
SearchVisitor::RankController::setupRankProcessors(Query & query,
@@ -485,7 +485,7 @@ SearchVisitor::RankController::setupRankProcessors(Query & query,
const IndexEnvironment & indexEnv = _rankManagerSnapshot->getIndexEnvironment(_rankProfile);
processHintedAttributes(indexEnv, true, attrMan, attributeFields);
- _rankProcessor.reset(new RankProcessor(_rankManagerSnapshot, _rankProfile, query, location, _queryProperties, &attrMan));
+ _rankProcessor = std::make_unique<RankProcessor>(_rankManagerSnapshot, _rankProfile, query, location, _queryProperties, &attrMan);
LOG(debug, "Initialize rank processor");
_rankProcessor->initForRanking(wantedHitCount);
@@ -493,7 +493,7 @@ SearchVisitor::RankController::setupRankProcessors(Query & query,
// register attribute vectors needed for dumping
processHintedAttributes(indexEnv, false, attrMan, attributeFields);
- _dumpProcessor.reset(new RankProcessor(_rankManagerSnapshot, _rankProfile, query, location, _queryProperties, &attrMan));
+ _dumpProcessor = std::make_unique<RankProcessor>(_rankManagerSnapshot, _rankProfile, query, location, _queryProperties, &attrMan);
LOG(debug, "Initialize dump processor");
_dumpProcessor->initForDumping(wantedHitCount);
}
@@ -620,14 +620,14 @@ SearchVisitor::registerAdditionalFields(const std::vector<vsm::DocsumTools::Fiel
for (size_t j = 0; j < inputNames.size(); ++j) {
fieldList.push_back(inputNames[j]);
if (PositionDataType::isZCurveFieldName(inputNames[j])) {
- fieldList.push_back(PositionDataType::cutZCurveFieldName(inputNames[j]));
+ fieldList.emplace_back(PositionDataType::cutZCurveFieldName(inputNames[j]));
}
}
}
// fields used during sorting
- fieldList.push_back("[docid]");
- fieldList.push_back("[rank]");
- fieldList.push_back("documentid");
+ fieldList.emplace_back("[docid]");
+ fieldList.emplace_back("[rank]");
+ fieldList.emplace_back("documentid");
}
void
@@ -710,7 +710,7 @@ SearchVisitor::setupDocsumObjects()
}
}
if (index == _attributeFields.size()) {
- _attributeFields.push_back(AttrInfo(fid, std::move(attr)));
+ _attributeFields.emplace_back(fid, std::move(attr));
}
} else {
LOG(warning, "Attribute '%s' is not valid", name.c_str());
@@ -764,7 +764,7 @@ void SearchVisitor::setupAttributeVector(const FieldPath &fieldPath) {
attr = createAttribute(attrName, fv);
}
- if (attr.get()) {
+ if (attr) {
LOG(debug, "Adding attribute '%s' for field '%s' with data type '%s' (%s)",
attr->getName().c_str(), attrName.c_str(), fv.getDataType()->getName().c_str(), fv.getClass().name());
if ( ! _attrMan.add(attr) ) {
@@ -796,7 +796,7 @@ SearchVisitor::setupAttributeVectorsForSorting(const search::common::SortSpec &
}
}
if (index == _attributeFields.size()) {
- _attributeFields.push_back(AttrInfo(fid, std::move(attr), sInfo._ascending, sInfo._converter.get()));
+ _attributeFields.emplace_back(fid, std::move(attr), sInfo._ascending, sInfo._converter.get());
}
_sortList.push_back(index);
} else {
@@ -849,8 +849,8 @@ SearchVisitor::setupGrouping(const std::vector<char> & groupingBlob)
class SingleDocumentStore : public vsm::IDocSumCache
{
public:
- SingleDocumentStore(const StorageDocument & doc) : _doc(doc) { }
- virtual const vsm::Document & getDocSum(const search::DocumentIdT & docId) const override {
+ explicit SingleDocumentStore(const StorageDocument & doc) : _doc(doc) { }
+ const vsm::Document & getDocSum(const search::DocumentIdT & docId) const override {
(void) docId;
return _doc;
}
@@ -1001,7 +1001,7 @@ SearchVisitor::fillAttributeVectors(const vespalib::string & documentId, const S
fieldId = _fieldsUnion.find(org)->second;
}
const StorageDocument::SubDocument & subDoc = document.getComplexField(fieldId);
- AttributeVector & attrV = const_cast<AttributeVector & >(*finfoGuard);
+ auto & attrV = const_cast<AttributeVector & >(*finfoGuard);
AttributeVector::DocId docId(0);
attrV.addDoc(docId);
if (subDoc.getFieldValue() != nullptr) {