lib/v20191115/models.rb



# frozen_string_literal: true

# Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. 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.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License 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.

module TencentCloud
  module Yunsou
    module V20191115
      # DataManipulation请求参数结构体
      class DataManipulationRequest < TencentCloud::Common::AbstractModel
        # @param OpType: 操作类型,add或del
        # @type OpType: String
        # @param Encoding: 数据编码类型
        # @type Encoding: String
        # @param Contents: 数据
        # @type Contents: String
        # @param ResourceId: 应用Id
        # @type ResourceId: Integer

        attr_accessor :OpType, :Encoding, :Contents, :ResourceId
        
        def initialize(optype=nil, encoding=nil, contents=nil, resourceid=nil)
          @OpType = optype
          @Encoding = encoding
          @Contents = contents
          @ResourceId = resourceid
        end

        def deserialize(params)
          @OpType = params['OpType']
          @Encoding = params['Encoding']
          @Contents = params['Contents']
          @ResourceId = params['ResourceId']
        end
      end

      # DataManipulation返回参数结构体
      class DataManipulationResponse < TencentCloud::Common::AbstractModel
        # @param Data: 数据操作结果
        # @type Data: :class:`Tencentcloud::Yunsou.v20191115.models.DataManipulationResult`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Data, :RequestId
        
        def initialize(data=nil, requestid=nil)
          @Data = data
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = DataManipulationResult.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # 数据操作结果
      class DataManipulationResult < TencentCloud::Common::AbstractModel
        # @param AppId: 应用ID
        # @type AppId: Integer
        # @param Seq: 序号
        # @type Seq: Integer
        # @param TotalResult: 结果
        # @type TotalResult: String
        # @param Result: 操作结果明细
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Result: Array
        # @param ErrorResult: 异常信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ErrorResult: String

        attr_accessor :AppId, :Seq, :TotalResult, :Result, :ErrorResult
        
        def initialize(appid=nil, seq=nil, totalresult=nil, result=nil, errorresult=nil)
          @AppId = appid
          @Seq = seq
          @TotalResult = totalresult
          @Result = result
          @ErrorResult = errorresult
        end

        def deserialize(params)
          @AppId = params['AppId']
          @Seq = params['Seq']
          @TotalResult = params['TotalResult']
          unless params['Result'].nil?
            @Result = []
            params['Result'].each do |i|
              datamanipulationresultitem_tmp = DataManipulationResultItem.new
              datamanipulationresultitem_tmp.deserialize(i)
              @Result << datamanipulationresultitem_tmp
            end
          end
          @ErrorResult = params['ErrorResult']
        end
      end

      # 数据操作结果明细
      class DataManipulationResultItem < TencentCloud::Common::AbstractModel
        # @param Result: 结果
        # @type Result: String
        # @param DocId: 文档ID
        # @type DocId: String
        # @param Errno: 错误码
        # @type Errno: Integer

        attr_accessor :Result, :DocId, :Errno
        
        def initialize(result=nil, docid=nil, errno=nil)
          @Result = result
          @DocId = docid
          @Errno = errno
        end

        def deserialize(params)
          @Result = params['Result']
          @DocId = params['DocId']
          @Errno = params['Errno']
        end
      end

      # DataSearch请求参数结构体
      class DataSearchRequest < TencentCloud::Common::AbstractModel
        # @param ResourceId: 云搜的业务ID,用以表明当前数据请求的业务
        # @type ResourceId: Integer
        # @param SearchQuery: 检索串
        # @type SearchQuery: String
        # @param PageId: 当前页,从第0页开始计算
        # @type PageId: Integer
        # @param NumPerPage: 每页结果数
        # @type NumPerPage: Integer
        # @param SearchId: 当前检索号,用于定位问题,建议指定并且全局唯一
        # @type SearchId: String
        # @param QueryEncode: 请求编码,0表示utf8,1表示gbk,建议指定
        # @type QueryEncode: Integer
        # @param RankType: 排序类型
        # @type RankType: Integer
        # @param NumFilter: 数值过滤,结果中按属性过滤
        # @type NumFilter: String
        # @param ClFilter: 分类过滤,导航类检索请求
        # @type ClFilter: String
        # @param Extra: 检索用户相关字段
        # @type Extra: String
        # @param SourceId: 检索来源
        # @type SourceId: Integer
        # @param SecondSearch: 是否进行二次检索,0关闭,1打开
        # @type SecondSearch: Integer
        # @param MaxDocReturn: 指定返回最大篇数,无特殊原因不建议指定
        # @type MaxDocReturn: Integer
        # @param IsSmartbox: 是否smartbox检索,0关闭,1打开
        # @type IsSmartbox: Integer
        # @param EnableAbsHighlight: 是否打开高红标亮,0关闭,1打开
        # @type EnableAbsHighlight: Integer
        # @param QcBid: 指定访问QC纠错业务ID
        # @type QcBid: Integer
        # @param GroupBy: 按指定字段进行group by,只能对数值字段进行操作
        # @type GroupBy: String
        # @param Distinct: 按指定字段进行distinct,只能对数值字段进行操作
        # @type Distinct: String
        # @param L4RankExpression: 高级排序参数,具体参见高级排序说明
        # @type L4RankExpression: String
        # @param MatchValue: 高级排序参数,具体参见高级排序说明
        # @type MatchValue: String
        # @param Longitude: 经度信息
        # @type Longitude: Float
        # @param Latitude: 纬度信息
        # @type Latitude: Float
        # @param MultiFilter: 分类过滤并集
        # @type MultiFilter: Array

        attr_accessor :ResourceId, :SearchQuery, :PageId, :NumPerPage, :SearchId, :QueryEncode, :RankType, :NumFilter, :ClFilter, :Extra, :SourceId, :SecondSearch, :MaxDocReturn, :IsSmartbox, :EnableAbsHighlight, :QcBid, :GroupBy, :Distinct, :L4RankExpression, :MatchValue, :Longitude, :Latitude, :MultiFilter
        
        def initialize(resourceid=nil, searchquery=nil, pageid=nil, numperpage=nil, searchid=nil, queryencode=nil, ranktype=nil, numfilter=nil, clfilter=nil, extra=nil, sourceid=nil, secondsearch=nil, maxdocreturn=nil, issmartbox=nil, enableabshighlight=nil, qcbid=nil, groupby=nil, distinct=nil, l4rankexpression=nil, matchvalue=nil, longitude=nil, latitude=nil, multifilter=nil)
          @ResourceId = resourceid
          @SearchQuery = searchquery
          @PageId = pageid
          @NumPerPage = numperpage
          @SearchId = searchid
          @QueryEncode = queryencode
          @RankType = ranktype
          @NumFilter = numfilter
          @ClFilter = clfilter
          @Extra = extra
          @SourceId = sourceid
          @SecondSearch = secondsearch
          @MaxDocReturn = maxdocreturn
          @IsSmartbox = issmartbox
          @EnableAbsHighlight = enableabshighlight
          @QcBid = qcbid
          @GroupBy = groupby
          @Distinct = distinct
          @L4RankExpression = l4rankexpression
          @MatchValue = matchvalue
          @Longitude = longitude
          @Latitude = latitude
          @MultiFilter = multifilter
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @SearchQuery = params['SearchQuery']
          @PageId = params['PageId']
          @NumPerPage = params['NumPerPage']
          @SearchId = params['SearchId']
          @QueryEncode = params['QueryEncode']
          @RankType = params['RankType']
          @NumFilter = params['NumFilter']
          @ClFilter = params['ClFilter']
          @Extra = params['Extra']
          @SourceId = params['SourceId']
          @SecondSearch = params['SecondSearch']
          @MaxDocReturn = params['MaxDocReturn']
          @IsSmartbox = params['IsSmartbox']
          @EnableAbsHighlight = params['EnableAbsHighlight']
          @QcBid = params['QcBid']
          @GroupBy = params['GroupBy']
          @Distinct = params['Distinct']
          @L4RankExpression = params['L4RankExpression']
          @MatchValue = params['MatchValue']
          @Longitude = params['Longitude']
          @Latitude = params['Latitude']
          @MultiFilter = params['MultiFilter']
        end
      end

      # DataSearch返回参数结构体
      class DataSearchResponse < TencentCloud::Common::AbstractModel
        # @param Data: 检索结果
        # @type Data: :class:`Tencentcloud::Yunsou.v20191115.models.SearchResult`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Data, :RequestId
        
        def initialize(data=nil, requestid=nil)
          @Data = data
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = SearchResult.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # 搜索结果
      class SearchResult < TencentCloud::Common::AbstractModel
        # @param CostTime: 检索耗时,单位ms
        # @type CostTime: Integer
        # @param DisplayNum: 搜索最多可以展示的结果数,多页
        # @type DisplayNum: Integer
        # @param Echo: 和检索请求中的echo相对应
        # @type Echo: String
        # @param EResultNum: 检索结果的估算篇数,由索引平台估算
        # @type EResultNum: Integer
        # @param ResultNum: 检索返回的当前页码结果数
        # @type ResultNum: Integer
        # @param ResultList: 检索结果列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ResultList: Array
        # @param SegList: 检索的分词结果,array类型,可包含多个
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SegList: Array

        attr_accessor :CostTime, :DisplayNum, :Echo, :EResultNum, :ResultNum, :ResultList, :SegList
        
        def initialize(costtime=nil, displaynum=nil, echo=nil, eresultnum=nil, resultnum=nil, resultlist=nil, seglist=nil)
          @CostTime = costtime
          @DisplayNum = displaynum
          @Echo = echo
          @EResultNum = eresultnum
          @ResultNum = resultnum
          @ResultList = resultlist
          @SegList = seglist
        end

        def deserialize(params)
          @CostTime = params['CostTime']
          @DisplayNum = params['DisplayNum']
          @Echo = params['Echo']
          @EResultNum = params['EResultNum']
          @ResultNum = params['ResultNum']
          unless params['ResultList'].nil?
            @ResultList = []
            params['ResultList'].each do |i|
              searchresultitem_tmp = SearchResultItem.new
              searchresultitem_tmp.deserialize(i)
              @ResultList << searchresultitem_tmp
            end
          end
          unless params['SegList'].nil?
            @SegList = []
            params['SegList'].each do |i|
              searchresultseg_tmp = SearchResultSeg.new
              searchresultseg_tmp.deserialize(i)
              @SegList << searchresultseg_tmp
            end
          end
        end
      end

      # 搜索结果元素
      class SearchResultItem < TencentCloud::Common::AbstractModel
        # @param DocAbs: 动态摘要信息
        # @type DocAbs: String
        # @param DocId: 检索文档id
        # @type DocId: String
        # @param DocMeta: 原始文档信息
        # @type DocMeta: String
        # @param L2Score: 精计算得分
        # @type L2Score: Float
        # @param SearchDebuginfo: 文档级回传信息
        # @type SearchDebuginfo: String

        attr_accessor :DocAbs, :DocId, :DocMeta, :L2Score, :SearchDebuginfo
        
        def initialize(docabs=nil, docid=nil, docmeta=nil, l2score=nil, searchdebuginfo=nil)
          @DocAbs = docabs
          @DocId = docid
          @DocMeta = docmeta
          @L2Score = l2score
          @SearchDebuginfo = searchdebuginfo
        end

        def deserialize(params)
          @DocAbs = params['DocAbs']
          @DocId = params['DocId']
          @DocMeta = params['DocMeta']
          @L2Score = params['L2Score']
          @SearchDebuginfo = params['SearchDebuginfo']
        end
      end

      # SearchResultSeg
      class SearchResultSeg < TencentCloud::Common::AbstractModel
        # @param SegStr: 分词
        # @type SegStr: String

        attr_accessor :SegStr
        
        def initialize(segstr=nil)
          @SegStr = segstr
        end

        def deserialize(params)
          @SegStr = params['SegStr']
        end
      end

    end
  end
end