Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
match_query.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/*
3
* Copyright 2023-Present Couchbase, Inc.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#pragma once
19
20
#include <
couchbase/match_operator.hxx
>
21
#include <
couchbase/search_query.hxx
>
22
23
#include <cstdint>
24
#include <optional>
25
#include <stdexcept>
26
#include <string>
27
28
namespace
couchbase
29
{
44
class
match_query
:
public
search_query
45
{
46
public
:
55
explicit
match_query
(std::string match)
56
: match_{ std::move(match) }
57
{
58
}
59
70
auto
prefix_length
(std::uint32_t length) ->
match_query
&
71
{
72
if
(length == 0) {
73
throw
std::invalid_argument(
"prefix_length must be positive"
);
74
}
75
76
prefix_length_ = length;
77
return
*
this
;
78
}
79
91
auto
analyzer
(std::string analyzer_name) ->
match_query
&
92
{
93
analyzer_ = std::move(analyzer_name);
94
return
*
this
;
95
}
96
109
auto
field
(std::string field_name) ->
match_query
&
110
{
111
field_ = std::move(field_name);
112
return
*
this
;
113
}
114
126
auto
fuzziness
(std::uint32_t
fuzziness
) ->
match_query
&
127
{
128
fuzziness_ =
fuzziness
;
129
return
*
this
;
130
}
131
142
auto
match_operator
(
couchbase::match_operator
concatenation_operator) ->
match_query
&
143
{
144
operator_ = concatenation_operator;
145
return
*
this
;
146
}
147
154
[[nodiscard]]
auto
encode
() const -> encoded_search_query override;
155
156
private:
157
std::
string
match_;
158
std::optional<std::uint32_t> prefix_length_{};
159
std::optional<std::string> analyzer_{};
160
std::optional<std::string> field_{};
161
std::optional<std::uint32_t> fuzziness_{};
162
std::optional<couchbase::match_operator> operator_{};
163
};
164
}
// namespace couchbase
couchbase::match_query::match_query
match_query(std::string match)
Create a new match query.
Definition
match_query.hxx:55
couchbase::match_query::prefix_length
auto prefix_length(std::uint32_t length) -> match_query &
Require that the term also have the same prefix of the specified length (must be positive).
Definition
match_query.hxx:70
couchbase::match_query::field
auto field(std::string field_name) -> match_query &
If a field is specified, only terms in that field will be matched.
Definition
match_query.hxx:109
couchbase::match_query::encode
auto encode() const -> encoded_search_query override
couchbase::match_query::fuzziness
auto fuzziness(std::uint32_t fuzziness) -> match_query &
Perform fuzzy matching.
Definition
match_query.hxx:126
couchbase::match_query::analyzer
auto analyzer(std::string analyzer_name) -> match_query &
Analyzers are used to transform input text into a stream of tokens for indexing.
Definition
match_query.hxx:91
couchbase::match_query::match_operator
auto match_operator(couchbase::match_operator concatenation_operator) -> match_query &
Defines how the individual match terms should be logically concatenated.
Definition
match_query.hxx:142
couchbase::search_query::search_query
search_query()=default
match_operator.hxx
couchbase
Represents a single item from the result of scan().
Definition
allow_querying_search_index_options.hxx:28
couchbase::match_operator
match_operator
Defines how the individual match terms should be logically concatenated.
Definition
match_operator.hxx:28
search_query.hxx
couchbase
match_query.hxx
Generated by
1.17.0