aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-05 16:17:31 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-05 16:17:31 +0000
commitc48eb091494ccb39d2edd0a1b50073f3c5dc4c2b (patch)
tree0a7221072c7c764914e67f1c81fbd635815f1405
parent19c39fc777a89ce8d9f3b71becfc93debab923ea (diff)
Move Normalization from search::streaming => search
-rw-r--r--searchlib/src/vespa/searchlib/query/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/query/query_normalization.cpp31
-rw-r--r--searchlib/src/vespa/searchlib/query/query_normalization.h25
-rw-r--r--searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.cpp18
-rw-r--r--searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.h11
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp1
-rw-r--r--streamingvisitors/src/tests/searcher/searcher_test.cpp2
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/querytermdata.h19
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp4
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.h2
-rw-r--r--streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.h7
-rw-r--r--streamingvisitors/src/vespa/vsm/searcher/tokenizereader.h2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp10
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.h2
14 files changed, 79 insertions, 56 deletions
diff --git a/searchlib/src/vespa/searchlib/query/CMakeLists.txt b/searchlib/src/vespa/searchlib/query/CMakeLists.txt
index 29e9c02e6f2..1c47c910cb4 100644
--- a/searchlib/src/vespa/searchlib/query/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/query/CMakeLists.txt
@@ -4,5 +4,6 @@ vespa_add_library(searchlib_query OBJECT
query_term_simple.cpp
query_term_ucs4.cpp
query_term_decoder.cpp
+ query_normalization.cpp
DEPENDS
)
diff --git a/searchlib/src/vespa/searchlib/query/query_normalization.cpp b/searchlib/src/vespa/searchlib/query/query_normalization.cpp
new file mode 100644
index 00000000000..e6a9d2202a9
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/query/query_normalization.cpp
@@ -0,0 +1,31 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "query_normalization.h"
+#include <ostream>
+
+namespace search {
+
+namespace {
+
+const char *
+to_str(search::Normalizing norm) noexcept {
+ switch (norm) {
+ case search::Normalizing::NONE:
+ return "NONE";
+ case search::Normalizing::LOWERCASE:
+ return "LOWERCASE";
+ case search::Normalizing::LOWERCASE_AND_FOLD:
+ return "LOWERCASE_AND_FOLD";
+ }
+ abort();
+}
+
+}
+
+std::ostream &
+operator<<(std::ostream &os, Normalizing n) {
+ os << to_str(n);
+ return os;
+}
+
+}
diff --git a/searchlib/src/vespa/searchlib/query/query_normalization.h b/searchlib/src/vespa/searchlib/query/query_normalization.h
new file mode 100644
index 00000000000..004876536b4
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/query/query_normalization.h
@@ -0,0 +1,25 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#pragma once
+
+#include <vespa/vespalib/stllike/string.h>
+#include <iosfwd>
+
+namespace search {
+
+enum class Normalizing {
+ NONE,
+ LOWERCASE,
+ LOWERCASE_AND_FOLD
+};
+
+std::ostream &operator<<(std::ostream &, Normalizing);
+
+class QueryNormalization {
+public:
+ using Normalizing = search::Normalizing;
+ virtual ~QueryNormalization() = default;
+ virtual bool is_text_matching(vespalib::stringref index) const noexcept = 0;
+ virtual Normalizing normalizing_mode(vespalib::stringref index) const noexcept = 0;
+};
+
+}
diff --git a/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.cpp b/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.cpp
index af8ce7c9994..ccfd187441d 100644
--- a/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.cpp
+++ b/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.cpp
@@ -4,22 +4,4 @@
namespace search::streaming {
-namespace {
-
-const char* to_str(Normalizing norm) noexcept {
- switch (norm) {
- case Normalizing::NONE: return "NONE";
- case Normalizing::LOWERCASE: return "LOWERCASE";
- case Normalizing::LOWERCASE_AND_FOLD: return "LOWERCASE_AND_FOLD";
- }
- abort();
-}
-
-}
-
-std::ostream& operator<<(std::ostream& os, Normalizing n) {
- os << to_str(n);
- return os;
-}
-
}
diff --git a/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.h b/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.h
index 83fb27794a3..4097250f67e 100644
--- a/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.h
+++ b/searchlib/src/vespa/searchlib/query/streaming/querynoderesultbase.h
@@ -1,8 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <vespa/vespalib/stllike/string.h>
-#include <iosfwd>
+#include <vespa/searchlib/query/query_normalization.h>
#include <memory>
namespace search::streaming {
@@ -19,14 +18,6 @@ public:
virtual QueryNodeResultBase * clone() const = 0;
};
-enum class Normalizing {
- NONE,
- LOWERCASE,
- LOWERCASE_AND_FOLD
-};
-
-std::ostream& operator<<(std::ostream&, Normalizing);
-
class QueryNodeResultFactory {
public:
virtual ~QueryNodeResultFactory() = default;
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
index 5dcfda64e1e..9be6a2d8d7c 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
@@ -48,7 +48,6 @@ DynamicTeaserDFW::insert_juniper_field(uint32_t docid, vespalib::stringref input
std::unique_ptr<juniper::Result> result;
if (query) {
-
if (LOG_WOULD_LOG(spam)) {
std::ostringstream hexDump;
hexDump << vespalib::HexDump(input.data(), input.length());
diff --git a/streamingvisitors/src/tests/searcher/searcher_test.cpp b/streamingvisitors/src/tests/searcher/searcher_test.cpp
index daa26b855e8..ce9636895b4 100644
--- a/streamingvisitors/src/tests/searcher/searcher_test.cpp
+++ b/streamingvisitors/src/tests/searcher/searcher_test.cpp
@@ -30,7 +30,7 @@ using search::streaming::QueryNodeResultFactory;
using search::streaming::FuzzyTerm;
using search::streaming::RegexpTerm;
using search::streaming::QueryTerm;
-using search::streaming::Normalizing;
+using search::Normalizing;
using Searchmethod = VsmfieldsConfig::Fieldspec::Searchmethod;
using search::streaming::QueryTermList;
using TermType = QueryTerm::Type;
diff --git a/streamingvisitors/src/vespa/searchvisitor/querytermdata.h b/streamingvisitors/src/vespa/searchvisitor/querytermdata.h
index 38d0e942fbc..b9b7818b9f2 100644
--- a/streamingvisitors/src/vespa/searchvisitor/querytermdata.h
+++ b/streamingvisitors/src/vespa/searchvisitor/querytermdata.h
@@ -20,29 +20,22 @@ public:
search::fef::SimpleTermData &getTermData() noexcept { return _termData; }
};
-class SearchMethodInfo {
-public:
- using Normalizing = search::streaming::Normalizing;
- virtual ~SearchMethodInfo() = default;
- virtual bool is_text_matching(vespalib::stringref index) const noexcept = 0;
- virtual Normalizing normalizing_mode(vespalib::stringref index) const noexcept = 0;
-};
-
class QueryTermDataFactory final : public search::streaming::QueryNodeResultFactory {
public:
- using Normalizing = search::streaming::Normalizing;
- QueryTermDataFactory(const SearchMethodInfo * searchMethodInfo) noexcept : _searchMethodInfo(searchMethodInfo) {}
+ using Normalizing = search::Normalizing;
+ using QueryNormalization = search::QueryNormalization;
+ QueryTermDataFactory(const QueryNormalization * normalization) noexcept : _normalization(normalization) {}
std::unique_ptr<search::streaming::QueryNodeResultBase> create() const override {
return std::make_unique<QueryTermData>();
}
Normalizing normalizing_mode(vespalib::stringref index) const noexcept override {
- return _searchMethodInfo ? _searchMethodInfo->normalizing_mode(index) : Normalizing::LOWERCASE_AND_FOLD;
+ return _normalization ? _normalization->normalizing_mode(index) : Normalizing::LOWERCASE_AND_FOLD;
}
bool allow_float_terms_rewrite(vespalib::stringref index ) const noexcept override {
- return _searchMethodInfo && _searchMethodInfo->is_text_matching(index);
+ return _normalization && _normalization->is_text_matching(index);
}
private:
- const SearchMethodInfo * _searchMethodInfo;
+ const QueryNormalization * _normalization;
};
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
index a1e8fddc3bf..8e75fe858d9 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp
@@ -42,7 +42,7 @@ using search::aggregation::HitsAggregationResult;
using search::attribute::IAttributeVector;
using search::expression::ConfigureStaticParams;
using search::streaming::Query;
-using search::streaming::Normalizing;
+using search::Normalizing;
using search::streaming::QueryTermList;
using storage::StorageComponent;
using storage::VisitorEnvironment;
@@ -355,7 +355,7 @@ count_normalize_none(const vsm::FieldSearchSpecMapT & specMap, const StringField
}
-SearchMethodInfo::Normalizing
+search::Normalizing
SearchVisitor::normalizing_mode(vespalib::stringref index) const noexcept {
StringFieldIdTMap fieldIdMap;
_fieldSearchSpecMap.addFieldsFromIndex(index, fieldIdMap);
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
index 98d0747baec..9ad31b7559c 100644
--- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
+++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.h
@@ -44,7 +44,7 @@ class SearchEnvironmentSnapshot;
* converts them to a QueryResultCommand.
**/
class SearchVisitor : public storage::Visitor,
- public SearchMethodInfo {
+ public search::QueryNormalization {
public:
SearchVisitor(storage::StorageComponent&, storage::VisitorEnvironment& vEnv,
const vdslib::Parameters & params);
diff --git a/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.h b/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.h
index 2af68c553b8..6f3ec3e1e73 100644
--- a/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.h
+++ b/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.h
@@ -22,20 +22,21 @@ using SharedSearcherBuf = std::shared_ptr<SearcherBuf>;
class FieldSearcherBase
{
+public:
+ FieldSearcherBase & operator = (const FieldSearcherBase & org) = delete;
protected:
FieldSearcherBase() noexcept;
FieldSearcherBase(const FieldSearcherBase & org);
virtual ~FieldSearcherBase();
- FieldSearcherBase & operator = (const FieldSearcherBase & org) = delete;
void prepare(const search::streaming::QueryTermList & qtl);
-protected:
+
search::streaming::QueryTermList _qtl;
};
class FieldSearcher : public FieldSearcherBase
{
public:
- using Normalizing = search::streaming::Normalizing;
+ using Normalizing = search::Normalizing;
enum MatchType {
REGULAR,
PREFIX,
diff --git a/streamingvisitors/src/vespa/vsm/searcher/tokenizereader.h b/streamingvisitors/src/vespa/vsm/searcher/tokenizereader.h
index f10c8910e82..2bb5e62e0aa 100644
--- a/streamingvisitors/src/vespa/vsm/searcher/tokenizereader.h
+++ b/streamingvisitors/src/vespa/vsm/searcher/tokenizereader.h
@@ -14,7 +14,7 @@ namespace vsm {
class TokenizeReader {
public:
using byte = search::byte;
- using Normalizing = search::streaming::Normalizing;
+ using Normalizing = search::Normalizing;
TokenizeReader(const byte *p, uint32_t len, ucs4_t *q) noexcept
: _p(p),
_p_end(p + len),
diff --git a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
index 63d2007cecf..3ae4794e33f 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
@@ -263,14 +263,14 @@ buildFieldSet(const VsmfieldsConfig::Documenttype::Index & ci, const FieldSearch
return ifm;
}
-search::streaming::Normalizing
+search::Normalizing
normalize_mode(VsmfieldsConfig::Fieldspec::Normalize normalize_mode) {
switch (normalize_mode) {
- case VsmfieldsConfig::Fieldspec::Normalize::NONE: return search::streaming::Normalizing::NONE;
- case VsmfieldsConfig::Fieldspec::Normalize::LOWERCASE: return search::streaming::Normalizing::LOWERCASE;
- case VsmfieldsConfig::Fieldspec::Normalize::LOWERCASE_AND_FOLD: return search::streaming::Normalizing::LOWERCASE_AND_FOLD;
+ case VsmfieldsConfig::Fieldspec::Normalize::NONE: return search::Normalizing::NONE;
+ case VsmfieldsConfig::Fieldspec::Normalize::LOWERCASE: return search::Normalizing::LOWERCASE;
+ case VsmfieldsConfig::Fieldspec::Normalize::LOWERCASE_AND_FOLD: return search::Normalizing::LOWERCASE_AND_FOLD;
}
- return search::streaming::Normalizing::LOWERCASE_AND_FOLD;
+ return search::Normalizing::LOWERCASE_AND_FOLD;
}
}
diff --git a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.h b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.h
index c862753a41c..e90aea1371b 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.h
@@ -11,7 +11,7 @@ class FieldSearchSpec
{
public:
using Searchmethod = VsmfieldsConfig::Fieldspec::Searchmethod;
- using Normalizing = search::streaming::Normalizing;
+ using Normalizing = search::Normalizing;
FieldSearchSpec();
FieldSearchSpec(const FieldIdT & id, const vespalib::string & name, Searchmethod searchMethod,
Normalizing normalize_mode, vespalib::stringref arg1, size_t maxLength);