62 std::optional<std::uint32_t>
limit{};
63 std::optional<std::uint32_t>
skip{};
70 std::map<std::string, codec::binary, std::less<>>
raw{};
71 std::map<std::string, std::shared_ptr<search_facet>, std::less<>>
facets{};
72 std::vector<std::shared_ptr<search_sort>>
sort{};
74 std::optional<search_scoring::built>
scoring{};
127 client_context_id_.reset();
157 mutation_state_.clear();
181 mutation_state_ = state.tokens();
182 scan_consistency_.reset();
196 template<
typename Value,
198 std::enable_if_t<codec::is_serializer_v<Serializer>,
bool> =
true>
201 raw_[std::move(name)] = std::move(Serializer::template serialize<Value>(value));
267 [[deprecated(
"Use search_options::scoring(search_scoring_none{}) instead.")]]
270 if (disable && scoring_.has_value()) {
271 throw std::invalid_argument(
"disable_scoring() cannot be used together with scoring()");
273 disable_scoring_ = disable;
299 template<
typename Scoring,
300 std::enable_if_t<std::is_base_of_v<search_scoring, Scoring>,
bool> =
true>
303 if (disable_scoring_) {
304 throw std::invalid_argument(
"scoring() cannot be used together with disable_scoring()");
321 include_locations_ = include;
358 fields_ = std::move(
fields);
380 highlight_style_ = style;
381 highlight_fields_ = std::move(
fields);
403 highlight_fields_ = std::move(
fields);
429 sort_string_ = std::move(sort_expressions);
448 sort_ = std::move(sort_objects);
469 facets_[name] = std::move(
facet);
487 template<
typename... Facets>
514 facets_[std::move(name)] = std::move(
facet);
536 template<
typename Facet>
539 facets_[std::move(name)] = std::make_shared<Facet>(std::move(
facet));
544 template<
typename Name,
typename Facet,
typename... Rest>
545 void encode_facet(
const std::pair<Name, Facet>&
facet, Rest... args)
547 facets_[std::move(
facet.first)] = std::make_shared<Facet>(std::move(
facet.second));
548 if constexpr (
sizeof...(args) > 0) {
549 encode_facet(args...);
553 std::optional<std::string> client_context_id_{};
554 bool include_locations_{
false };
555 bool disable_scoring_{
false };
556 std::optional<bool> explain_{};
557 std::optional<std::uint32_t> limit_{};
558 std::optional<std::uint32_t> skip_{};
559 std::vector<std::string> collections_{};
560 std::vector<std::string> fields_{};
561 std::vector<std::string> highlight_fields_{};
562 std::optional<highlight_style> highlight_style_{};
563 std::optional<search_scan_consistency> scan_consistency_{};
564 std::vector<mutation_token> mutation_state_{};
565 std::map<std::string, codec::binary, std::less<>> raw_{};
566 std::map<std::string, std::shared_ptr<search_facet>, std::less<>> facets_{};
567 std::vector<std::shared_ptr<search_sort>> sort_{};
568 std::vector<std::string> sort_string_{};
569 std::optional<search_scoring::built> scoring_{};
Definition tao_json_serializer.hxx:42
Common options that used by most operations.
Definition common_options.hxx:38
auto self() -> search_options &
Definition common_options.hxx:116
auto build_common_options() const -> built
Definition common_options.hxx:103
Aggregation of one or more mutation_tokens for specifying consistency requirements of N1QL or FTS que...
Definition mutation_state.hxx:35
Represents result of search() and search() calls.
Definition search_result.hxx:45
Definition analytics_options.hxx:36
Represents a single item from the result of scan().
Definition allow_querying_search_index_options.hxx:28
std::function< void(error, search_result)> search_handler
The signature for the handler of the search() and search() operations.
Definition search_options.hxx:578
highlight_style
Enumeration of the highlighting styles recognized by the FTS engine.
Definition highlight_style.hxx:28
@ html
Use HTML tags <mark> and </mark> to indicate matches in the fields.
Definition highlight_style.hxx:35
search_scan_consistency
Definition search_scan_consistency.hxx:22
Immutable value object representing consistent options.
Definition search_options.hxx:57
std::vector< mutation_token > mutation_state
Definition search_options.hxx:69
std::vector< std::string > highlight_fields
Definition search_options.hxx:66
std::optional< bool > explain
Definition search_options.hxx:61
std::vector< std::string > collections
Definition search_options.hxx:64
std::optional< search_scoring::built > scoring
Definition search_options.hxx:74
std::map< std::string, codec::binary, std::less<> > raw
Definition search_options.hxx:70
std::optional< std::string > client_context_id
Definition search_options.hxx:58
std::optional< couchbase::highlight_style > highlight_style
Definition search_options.hxx:67
std::map< std::string, std::shared_ptr< search_facet >, std::less<> > facets
Definition search_options.hxx:71
bool include_locations
Definition search_options.hxx:59
std::optional< search_scan_consistency > scan_consistency
Definition search_options.hxx:68
std::vector< std::shared_ptr< search_sort > > sort
Definition search_options.hxx:72
std::vector< std::string > fields
Definition search_options.hxx:65
std::optional< std::uint32_t > skip
Definition search_options.hxx:63
std::optional< std::uint32_t > limit
Definition search_options.hxx:62
bool disable_scoring
Definition search_options.hxx:60
std::vector< std::string > sort_string
Definition search_options.hxx:73
Options for search() and search().
Definition search_options.hxx:50
auto skip(std::uint32_t skip) -> search_options &
Set the number of rows to skip (eg.
Definition search_options.hxx:214
auto highlight(highlight_style style=highlight_style::html, std::vector< std::string > fields={}) -> search_options &
Configures the highlighting of matches in the response.
Definition search_options.hxx:377
auto fields(std::vector< std::string > fields) -> search_options &
Configures the list of fields for which the whole value should be included in the response.
Definition search_options.hxx:356
auto scoring(const Scoring &scoring) -> search_options &
Selects how the server scores the hits, and how it merges the FTS and vector result sets of a hybrid ...
Definition search_options.hxx:301
auto explain(bool explain) -> search_options &
Activates or deactivates the explanation of each result hit in the response, according to the paramet...
Definition search_options.hxx:246
auto facet(std::string name, Facet facet) -> search_options &
Adds one search_facet to the query.
Definition search_options.hxx:537
auto facet(std::string name, std::shared_ptr< search_facet > facet) -> search_options &
Adds one search_facet to the query.
Definition search_options.hxx:512
auto sort(std::vector< std::shared_ptr< search_sort > > sort_objects) -> search_options &
Configures the list of search_sort instances which are used for sorting purposes.
Definition search_options.hxx:446
auto highlight(std::vector< std::string > fields) -> search_options &
Configures the highlighting of matches in the response for all fields, using the server's default hig...
Definition search_options.hxx:400
auto consistent_with(const mutation_state &state) -> search_options &
Sets the mutation_tokens this query should be consistent with.
Definition search_options.hxx:179
auto scan_consistency(search_scan_consistency scan_consistency) -> search_options &
Customizes the consistency guarantees for this query.
Definition search_options.hxx:154
auto sort(std::vector< std::string > sort_expressions) -> search_options &
Configures the list of fields (including special fields) which are used for sorting purposes.
Definition search_options.hxx:427
auto build() const -> built
Validates options and returns them as an immutable value.
Definition search_options.hxx:88
auto facets(std::map< std::string, std::shared_ptr< search_facet > > facets) -> search_options &
Sets list of search_facet to the query.
Definition search_options.hxx:465
auto disable_scoring(bool disable) -> search_options &
If set to true, thee server will not perform any scoring on the hits.
Definition search_options.hxx:268
auto include_locations(bool include) -> search_options &
If set to true, will include the locations().
Definition search_options.hxx:319
auto limit(std::uint32_t limit) -> search_options &
Add a limit to the query on the number of rows it can return.
Definition search_options.hxx:230
auto facets(const Facets &... facets) -> search_options &
Sets list of search_facet to the query.
Definition search_options.hxx:488
auto client_context_id(std::string client_context_id) -> search_options &
Supports providing a custom client context ID for this query.
Definition search_options.hxx:124
auto collections(std::vector< std::string > collections) -> search_options &
Allows to limit the search query to a specific list of collection names.
Definition search_options.hxx:336
auto raw(std::string name, const Value &value) -> search_options &
Definition search_options.hxx:199