/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the kendra-2019-02-03.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Kendra.Model
{
///
/// Container for the parameters to the Query operation.
/// Searches an index given an input query.
///
///
///
/// You can configure boosting or relevance tuning at the query level to override boosting
/// at the index level, filter based on document fields/attributes and faceted search,
/// and filter based on the user or their group access to documents. You can also include
/// certain fields in the response that might provide useful additional information.
///
///
///
/// A query response contains three types of results.
///
/// -
///
/// Relevant suggested answers. The answers can be either a text excerpt or table excerpt.
/// The answer can be highlighted in the excerpt.
///
///
-
///
/// Matching FAQs or questions-answer from your FAQ file.
///
///
-
///
/// Relevant documents. This result type includes an excerpt of the document with the
/// document title. The searched terms can be highlighted in the excerpt.
///
///
///
/// You can specify that the query return only one type of result using the QueryResultTypeFilter
/// parameter. Each query returns the 100 most relevant results. If you filter result
/// type to only question-answers, a maximum of four results are returned. If you filter
/// result type to only answers, a maximum of three results are returned.
///
///
public partial class QueryRequest : AmazonKendraRequest
{
private AttributeFilter _attributeFilter;
private List _documentRelevanceOverrideConfigurations = new List();
private List _facets = new List();
private string _indexId;
private int? _pageNumber;
private int? _pageSize;
private QueryResultType _queryResultTypeFilter;
private string _queryText;
private List _requestedDocumentAttributes = new List();
private SortingConfiguration _sortingConfiguration;
private SpellCorrectionConfiguration _spellCorrectionConfiguration;
private UserContext _userContext;
private string _visitorId;
///
/// Gets and sets the property AttributeFilter.
///
/// Filters search results by document fields/attributes. You can only provide one attribute
/// filter; however, the AndAllFilters
, NotFilter
, and OrAllFilters
/// parameters contain a list of other filters.
///
///
///
/// The AttributeFilter
parameter means you can create a set of filtering
/// rules that a document must satisfy to be included in the query results.
///
///
public AttributeFilter AttributeFilter
{
get { return this._attributeFilter; }
set { this._attributeFilter = value; }
}
// Check to see if AttributeFilter property is set
internal bool IsSetAttributeFilter()
{
return this._attributeFilter != null;
}
///
/// Gets and sets the property DocumentRelevanceOverrideConfigurations.
///
/// Overrides relevance tuning configurations of fields/attributes set at the index level.
///
///
///
/// If you use this API to override the relevance tuning configured at the index level,
/// but there is no relevance tuning configured at the index level, then Amazon Kendra
/// does not apply any relevance tuning.
///
///
///
/// If there is relevance tuning configured for fields at the index level, and you use
/// this API to override only some of these fields, then for the fields you did not override,
/// the importance is set to 1.
///
///
[AWSProperty(Min=0, Max=500)]
public List DocumentRelevanceOverrideConfigurations
{
get { return this._documentRelevanceOverrideConfigurations; }
set { this._documentRelevanceOverrideConfigurations = value; }
}
// Check to see if DocumentRelevanceOverrideConfigurations property is set
internal bool IsSetDocumentRelevanceOverrideConfigurations()
{
return this._documentRelevanceOverrideConfigurations != null && this._documentRelevanceOverrideConfigurations.Count > 0;
}
///
/// Gets and sets the property Facets.
///
/// An array of documents fields/attributes for faceted search. Amazon Kendra returns
/// a count for each field key specified. This helps your users narrow their search.
///
///
public List Facets
{
get { return this._facets; }
set { this._facets = value; }
}
// Check to see if Facets property is set
internal bool IsSetFacets()
{
return this._facets != null && this._facets.Count > 0;
}
///
/// Gets and sets the property IndexId.
///
/// The identifier of the index for the search.
///
///
[AWSProperty(Required=true, Min=36, Max=36)]
public string IndexId
{
get { return this._indexId; }
set { this._indexId = value; }
}
// Check to see if IndexId property is set
internal bool IsSetIndexId()
{
return this._indexId != null;
}
///
/// Gets and sets the property PageNumber.
///
/// Query results are returned in pages the size of the PageSize
parameter.
/// By default, Amazon Kendra returns the first page of results. Use this parameter to
/// get result pages after the first one.
///
///
public int PageNumber
{
get { return this._pageNumber.GetValueOrDefault(); }
set { this._pageNumber = value; }
}
// Check to see if PageNumber property is set
internal bool IsSetPageNumber()
{
return this._pageNumber.HasValue;
}
///
/// Gets and sets the property PageSize.
///
/// Sets the number of results that are returned in each page of results. The default
/// page size is 10. The maximum number of results returned is 100. If you ask for more
/// than 100 results, only 100 are returned.
///
///
public int PageSize
{
get { return this._pageSize.GetValueOrDefault(); }
set { this._pageSize = value; }
}
// Check to see if PageSize property is set
internal bool IsSetPageSize()
{
return this._pageSize.HasValue;
}
///
/// Gets and sets the property QueryResultTypeFilter.
///
/// Sets the type of query result or response. Only results for the specified type are
/// returned.
///
///
public QueryResultType QueryResultTypeFilter
{
get { return this._queryResultTypeFilter; }
set { this._queryResultTypeFilter = value; }
}
// Check to see if QueryResultTypeFilter property is set
internal bool IsSetQueryResultTypeFilter()
{
return this._queryResultTypeFilter != null;
}
///
/// Gets and sets the property QueryText.
///
/// The input query text for the search. Amazon Kendra truncates queries at 30 token words,
/// which excludes punctuation and stop words. Truncation still applies if you use Boolean
/// or more advanced, complex queries.
///
///
public string QueryText
{
get { return this._queryText; }
set { this._queryText = value; }
}
// Check to see if QueryText property is set
internal bool IsSetQueryText()
{
return this._queryText != null;
}
///
/// Gets and sets the property RequestedDocumentAttributes.
///
/// An array of document fields/attributes to include in the response. You can limit the
/// response to include certain document fields. By default, all document attributes are
/// included in the response.
///
///
[AWSProperty(Min=1, Max=100)]
public List RequestedDocumentAttributes
{
get { return this._requestedDocumentAttributes; }
set { this._requestedDocumentAttributes = value; }
}
// Check to see if RequestedDocumentAttributes property is set
internal bool IsSetRequestedDocumentAttributes()
{
return this._requestedDocumentAttributes != null && this._requestedDocumentAttributes.Count > 0;
}
///
/// Gets and sets the property SortingConfiguration.
///
/// Provides information that determines how the results of the query are sorted. You
/// can set the field that Amazon Kendra should sort the results on, and specify whether
/// the results should be sorted in ascending or descending order. In the case of ties
/// in sorting the results, the results are sorted by relevance.
///
///
///
/// If you don't provide sorting configuration, the results are sorted by the relevance
/// that Amazon Kendra determines for the result.
///
///
public SortingConfiguration SortingConfiguration
{
get { return this._sortingConfiguration; }
set { this._sortingConfiguration = value; }
}
// Check to see if SortingConfiguration property is set
internal bool IsSetSortingConfiguration()
{
return this._sortingConfiguration != null;
}
///
/// Gets and sets the property SpellCorrectionConfiguration.
///
/// Enables suggested spell corrections for queries.
///
///
public SpellCorrectionConfiguration SpellCorrectionConfiguration
{
get { return this._spellCorrectionConfiguration; }
set { this._spellCorrectionConfiguration = value; }
}
// Check to see if SpellCorrectionConfiguration property is set
internal bool IsSetSpellCorrectionConfiguration()
{
return this._spellCorrectionConfiguration != null;
}
///
/// Gets and sets the property UserContext.
///
/// The user context token or user and group information.
///
///
public UserContext UserContext
{
get { return this._userContext; }
set { this._userContext = value; }
}
// Check to see if UserContext property is set
internal bool IsSetUserContext()
{
return this._userContext != null;
}
///
/// Gets and sets the property VisitorId.
///
/// Provides an identifier for a specific user. The VisitorId
should be a
/// unique identifier, such as a GUID. Don't use personally identifiable information,
/// such as the user's email address, as the VisitorId
.
///
///
[AWSProperty(Min=1, Max=256)]
public string VisitorId
{
get { return this._visitorId; }
set { this._visitorId = value; }
}
// Check to see if VisitorId property is set
internal bool IsSetVisitorId()
{
return this._visitorId != null;
}
}
}