mirror of https://github.com/milvus-io/milvus.git
Add plan proto and support basic boolean expr parser (#5088)
**What type of PR is this?** - [x] Feature **What this PR does / why we need it:** This PR supports boolean expression as DSL. 1. The goal of this PR is to support predicates like `A > 3 && not B < 5 or C in [1, 2, 3]`. 2. Defines `plan.proto`, as Intermediate Representation (IR) used between go and cpp. 3. Support expr parser, convert predicate expr to IR in proxynode, while doing static check there 4. Support IR to AST in cpp, enable the executionpull/5094/head
parent
136cd7a704
commit
88f5642603
20
go.mod
20
go.mod
|
@ -3,27 +3,42 @@ module github.com/milvus-io/milvus
|
|||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/99designs/keyring v1.1.5 // indirect
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.0.1 // indirect
|
||||
github.com/apache/pulsar-client-go v0.4.0
|
||||
github.com/antonmedv/expr v1.8.9 // indirect
|
||||
github.com/apache/pulsar-client-go v0.4.0 // indirect
|
||||
github.com/beefsack/go-rate v0.0.0-20180408011153-efa7637bb9b6 // indirect
|
||||
github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b // indirect
|
||||
github.com/datadog/zstd v1.4.6-0.20200617134701-89f69fb7df32 // indirect
|
||||
github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c // indirect
|
||||
github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 // indirect
|
||||
github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 // indirect
|
||||
github.com/frankban/quicktest v1.10.2 // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||
github.com/go-basic/ipv4 v1.0.0
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||
github.com/golang/protobuf v1.4.2
|
||||
github.com/google/btree v1.0.0
|
||||
github.com/google/uuid v1.1.2 // indirect
|
||||
github.com/gorilla/context v1.1.1 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.0.0 // indirect
|
||||
github.com/jarcoal/httpmock v1.0.8
|
||||
github.com/klauspost/compress v1.10.11 // indirect
|
||||
github.com/linkedin/goavro/v2 v2.9.8 // indirect
|
||||
github.com/minio/minio-go/v7 v7.0.10
|
||||
github.com/mitchellh/mapstructure v1.1.2
|
||||
github.com/opentracing-contrib/go-grpc v0.0.0-20200813121455-4a6760c71486
|
||||
github.com/opentracing/opentracing-go v1.2.0
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible // indirect
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/prometheus/common v0.10.0 // indirect
|
||||
github.com/prometheus/procfs v0.1.3 // indirect
|
||||
github.com/quasilyte/go-ruleguard v0.2.1 // indirect
|
||||
github.com/sirupsen/logrus v1.6.0 // indirect
|
||||
github.com/spaolacci/murmur3 v1.1.0
|
||||
github.com/spf13/cast v1.3.0
|
||||
github.com/spf13/cobra v0.0.3 // indirect
|
||||
github.com/spf13/viper v1.7.1
|
||||
github.com/stretchr/testify v1.6.1
|
||||
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c
|
||||
|
@ -31,14 +46,17 @@ require (
|
|||
github.com/uber/jaeger-lib v2.4.0+incompatible // indirect
|
||||
github.com/yahoo/athenz v1.9.16 // indirect
|
||||
go.etcd.io/etcd v3.3.25+incompatible
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/zap v1.15.0
|
||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a // indirect
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
|
||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150 // indirect
|
||||
google.golang.org/grpc v1.31.0
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
gopkg.in/yaml.v2 v2.3.0 // indirect
|
||||
honnef.co/go/tools v0.0.1-2020.1.4 // indirect
|
||||
sigs.k8s.io/yaml v1.2.0 // indirect
|
||||
)
|
||||
|
|
30
go.sum
30
go.sum
|
@ -15,6 +15,7 @@ github.com/99designs/keyring v1.1.5/go.mod h1:7hsVvt2qXgtadGevGJ4ujg+u8m6SpJ5TpH
|
|||
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.0.1 h1:GX8GAYDuhlFQnI2fRDHQhTlkHMz8bEn0jTI6LJU0mpw=
|
||||
github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
|
@ -22,6 +23,8 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy
|
|||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/antonmedv/expr v1.8.9 h1:O9stiHmHHww9b4ozhPx7T6BK7fXfOCHJ8ybxf0833zw=
|
||||
github.com/antonmedv/expr v1.8.9/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8=
|
||||
github.com/apache/pulsar-client-go v0.4.0 h1:boWOejOMI7MZVpnUsqGYmCYXgCK0IWKpY+LgBNW0bHk=
|
||||
github.com/apache/pulsar-client-go v0.4.0/go.mod h1:C7yxreEzGR6SonCEttrFkOzb+syYT9JKId3bbXOloiM=
|
||||
github.com/apache/pulsar-client-go/oauth2 v0.0.0-20201120111947-b8bd55bc02bd h1:P5kM7jcXJ7TaftX0/EMKiSJgvQc/ct+Fw0KMvcH3WuY=
|
||||
|
@ -60,6 +63,7 @@ github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe2
|
|||
github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U=
|
||||
github.com/datadog/zstd v1.4.6-0.20200617134701-89f69fb7df32 h1:QWqadCIHYA5zja4b6h9uGQn93u1vL+G/aewImumdg/M=
|
||||
github.com/datadog/zstd v1.4.6-0.20200617134701-89f69fb7df32/go.mod h1:inRp+etsHuvVqMPNTXaFlpf/Tj7wqviBtdJoPVrPEFQ=
|
||||
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -84,6 +88,8 @@ github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P
|
|||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
|
||||
github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/go-basic/ipv4 v1.0.0 h1:gjyFAa1USC1hhXTkPOwBWDPfMcUaIM+tvo1XzV9EZxs=
|
||||
github.com/go-basic/ipv4 v1.0.0/go.mod h1:etLBnaxbidQfuqE6wgZQfs38nEWNmzALkxDZe4xY8Dg=
|
||||
|
@ -110,6 +116,7 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
|
|||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
|
@ -186,6 +193,7 @@ github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeY
|
|||
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
|
||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
|
@ -217,10 +225,14 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
|||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/linkedin/goavro/v2 v2.9.8 h1:jN50elxBsGBDGVDEKqUlDuU1cFwJ11K/yrJCBMe/7Wg=
|
||||
github.com/linkedin/goavro/v2 v2.9.8/go.mod h1:UgQUb2N/pmueQYH9bfqFioWxzYCZXSfF8Jw03O5sjqA=
|
||||
github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s=
|
||||
github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||
github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
|
@ -259,6 +271,7 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108
|
|||
github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
|
||||
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
|
||||
github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/opentracing-contrib/go-grpc v0.0.0-20200813121455-4a6760c71486 h1:K35HCWaOTJIPW6cDHK4yj3QfRY/NhE0pBbfoc0M2NMQ=
|
||||
|
@ -278,12 +291,14 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
|
|||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
|
||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
||||
github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
||||
github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA=
|
||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
|
@ -294,19 +309,26 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T
|
|||
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
|
||||
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
|
||||
github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
||||
github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
|
||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/quasilyte/go-ruleguard v0.2.1 h1:56eRm0daAyny9UhJnmtJW/UyLZQusukBAB8oT8AHKHo=
|
||||
github.com/quasilyte/go-ruleguard v0.2.1/go.mod h1:hN2rVc/uS4bQhQKTio2XaSJSafJwqBUWWwtssT3cQmc=
|
||||
github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
|
||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
|
@ -336,6 +358,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
|
@ -358,6 +381,7 @@ github.com/yahoo/athenz v1.8.55/go.mod h1:G7LLFUH7Z/r4QAB7FfudfuA7Am/eCzO1GlzBhD
|
|||
github.com/yahoo/athenz v1.9.16 h1:2s8KtIxwAbcJIYySsfrT/t/WO0Ss5O7BPGUN/q8x2bg=
|
||||
github.com/yahoo/athenz v1.9.16/go.mod h1:guj+0Ut6F33wj+OcSRlw69O0itsR7tVocv15F2wJnIo=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
|
||||
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||
|
@ -430,6 +454,7 @@ golang.org/x/net v0.0.0-20190921015927-1a5e07d1ff72/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
|
||||
|
@ -445,6 +470,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
@ -460,13 +486,16 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
@ -505,6 +534,7 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
|
|||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
get_property(PROTOC_EXCUTABLE GLOBAL PROPERTY PROTOC_EXCUTABLE )
|
||||
|
||||
|
||||
set(proto_file_names common.proto etcd_meta.proto schema.proto milvus.proto index_cgo_msg.proto)
|
||||
set(proto_file_names common.proto etcd_meta.proto schema.proto milvus.proto index_cgo_msg.proto plan.proto)
|
||||
|
||||
set( PROTO_PATH "${MILVUS_SOURCE_DIR}/../proto/" )
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ static void InitDefaultsscc_info_Status_common_2eproto() {
|
|||
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsscc_info_Status_common_2eproto}, {}};
|
||||
|
||||
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_common_2eproto[6];
|
||||
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[4];
|
||||
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_common_2eproto[5];
|
||||
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_common_2eproto = nullptr;
|
||||
|
||||
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_common_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
|
||||
|
@ -245,9 +245,10 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
|
|||
"TimeTick\020\260\t\022\023\n\016QueryNodeStats\020\261\t\022\016\n\tLoad"
|
||||
"Index\020\262\t\022\016\n\tRequestID\020\263\t\022\017\n\nRequestTSO\020\264"
|
||||
"\t\022\024\n\017AllocateSegment\020\265\t\022\026\n\021SegmentStatis"
|
||||
"tics\020\266\t\022\025\n\020SegmentFlushDone\020\267\tB5Z3github"
|
||||
".com/milvus-io/milvus/internal/proto/com"
|
||||
"monpbb\006proto3"
|
||||
"tics\020\266\t\022\025\n\020SegmentFlushDone\020\267\t*\"\n\007DslTyp"
|
||||
"e\022\007\n\003Dsl\020\000\022\016\n\nBoolExprV1\020\001B5Z3github.com"
|
||||
"/milvus-io/milvus/internal/proto/commonp"
|
||||
"bb\006proto3"
|
||||
;
|
||||
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
|
||||
};
|
||||
|
@ -262,7 +263,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
|
|||
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
|
||||
static bool descriptor_table_common_2eproto_initialized = false;
|
||||
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 1973,
|
||||
&descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2009,
|
||||
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 6, 0,
|
||||
schemas, file_default_instances, TableStruct_common_2eproto::offsets,
|
||||
file_level_metadata_common_2eproto, 6, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
|
||||
|
@ -396,6 +397,20 @@ bool MsgType_IsValid(int value) {
|
|||
}
|
||||
}
|
||||
|
||||
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DslType_descriptor() {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_common_2eproto);
|
||||
return file_level_enum_descriptors_common_2eproto[4];
|
||||
}
|
||||
bool DslType_IsValid(int value) {
|
||||
switch (value) {
|
||||
case 0:
|
||||
case 1:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ===================================================================
|
||||
|
||||
|
|
|
@ -258,6 +258,31 @@ inline bool MsgType_Parse(
|
|||
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<MsgType>(
|
||||
MsgType_descriptor(), name, value);
|
||||
}
|
||||
enum DslType : int {
|
||||
Dsl = 0,
|
||||
BoolExprV1 = 1,
|
||||
DslType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
|
||||
DslType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
|
||||
};
|
||||
bool DslType_IsValid(int value);
|
||||
constexpr DslType DslType_MIN = Dsl;
|
||||
constexpr DslType DslType_MAX = BoolExprV1;
|
||||
constexpr int DslType_ARRAYSIZE = DslType_MAX + 1;
|
||||
|
||||
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DslType_descriptor();
|
||||
template<typename T>
|
||||
inline const std::string& DslType_Name(T enum_t_value) {
|
||||
static_assert(::std::is_same<T, DslType>::value ||
|
||||
::std::is_integral<T>::value,
|
||||
"Incorrect type passed to function DslType_Name.");
|
||||
return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
|
||||
DslType_descriptor(), enum_t_value);
|
||||
}
|
||||
inline bool DslType_Parse(
|
||||
const std::string& name, DslType* value) {
|
||||
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DslType>(
|
||||
DslType_descriptor(), name, value);
|
||||
}
|
||||
// ===================================================================
|
||||
|
||||
class Status :
|
||||
|
@ -1582,6 +1607,11 @@ template <>
|
|||
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::MsgType>() {
|
||||
return ::milvus::proto::common::MsgType_descriptor();
|
||||
}
|
||||
template <> struct is_proto_enum< ::milvus::proto::common::DslType> : ::std::true_type {};
|
||||
template <>
|
||||
inline const EnumDescriptor* GetEnumDescriptor< ::milvus::proto::common::DslType>() {
|
||||
return ::milvus::proto::common::DslType_descriptor();
|
||||
}
|
||||
|
||||
PROTOBUF_NAMESPACE_CLOSE
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -880,9 +880,10 @@ static void InitDefaultsscc_info_SearchRequest_milvus_2eproto() {
|
|||
::milvus::proto::milvus::SearchRequest::InitAsDefaultInstance();
|
||||
}
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SearchRequest_milvus_2eproto =
|
||||
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsscc_info_SearchRequest_milvus_2eproto}, {
|
||||
&scc_info_MsgBase_common_2eproto.base,}};
|
||||
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SearchRequest_milvus_2eproto =
|
||||
{{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsscc_info_SearchRequest_milvus_2eproto}, {
|
||||
&scc_info_MsgBase_common_2eproto.base,
|
||||
&scc_info_KeyValuePair_common_2eproto.base,}};
|
||||
|
||||
static void InitDefaultsscc_info_SearchResults_milvus_2eproto() {
|
||||
GOOGLE_PROTOBUF_VERIFY_VERSION;
|
||||
|
@ -1345,6 +1346,8 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
|
|||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, partition_names_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, dsl_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, placeholder_group_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, dsl_type_),
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::SearchRequest, search_params_),
|
||||
~0u, // no _has_bits_
|
||||
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::Hits, _internal_metadata_),
|
||||
~0u, // no _extensions_
|
||||
|
@ -1478,17 +1481,17 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
|
|||
{ 311, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
|
||||
{ 319, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
|
||||
{ 325, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
|
||||
{ 336, -1, sizeof(::milvus::proto::milvus::Hits)},
|
||||
{ 344, -1, sizeof(::milvus::proto::milvus::SearchResults)},
|
||||
{ 351, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
|
||||
{ 359, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
|
||||
{ 373, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
|
||||
{ 381, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
|
||||
{ 388, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
|
||||
{ 400, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
|
||||
{ 408, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
|
||||
{ 415, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
|
||||
{ 420, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
|
||||
{ 338, -1, sizeof(::milvus::proto::milvus::Hits)},
|
||||
{ 346, -1, sizeof(::milvus::proto::milvus::SearchResults)},
|
||||
{ 353, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
|
||||
{ 361, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
|
||||
{ 375, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
|
||||
{ 383, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
|
||||
{ 390, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
|
||||
{ 402, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
|
||||
{ 410, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
|
||||
{ 417, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
|
||||
{ 422, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
|
||||
};
|
||||
|
||||
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
|
||||
|
@ -1669,117 +1672,119 @@ const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE(
|
|||
"\002 \001(\0162$.milvus.proto.milvus.PlaceholderT"
|
||||
"ype\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGroup\022"
|
||||
";\n\014placeholders\030\001 \003(\0132%.milvus.proto.mil"
|
||||
"vus.PlaceholderValue\"\246\001\n\rSearchRequest\022*"
|
||||
"vus.PlaceholderValue\"\220\002\n\rSearchRequest\022*"
|
||||
"\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBa"
|
||||
"se\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003"
|
||||
" \001(\t\022\027\n\017partition_names\030\004 \003(\t\022\013\n\003dsl\030\005 \001"
|
||||
"(\t\022\031\n\021placeholder_group\030\006 \001(\014\"5\n\004Hits\022\013\n"
|
||||
"\003IDs\030\001 \003(\003\022\020\n\010row_data\030\002 \003(\014\022\016\n\006scores\030\003"
|
||||
" \003(\002\"J\n\rSearchResults\022+\n\006status\030\001 \001(\0132\033."
|
||||
"milvus.proto.common.Status\022\014\n\004hits\030\002 \003(\014"
|
||||
"\"e\n\014FlushRequest\022*\n\004base\030\001 \001(\0132\034.milvus."
|
||||
"proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n"
|
||||
"\020collection_names\030\003 \003(\t\"\351\001\n\025PersistentSe"
|
||||
"gmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collecti"
|
||||
"onID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\021\n\topen_"
|
||||
"time\030\004 \001(\004\022\023\n\013sealed_time\030\005 \001(\004\022\024\n\014flush"
|
||||
"ed_time\030\006 \001(\004\022\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_s"
|
||||
"ize\030\010 \001(\003\0220\n\005state\030\t \001(\0162!.milvus.proto."
|
||||
"common.SegmentState\"u\n\037GetPersistentSegm"
|
||||
"entInfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pr"
|
||||
"oto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016co"
|
||||
"llectionName\030\003 \001(\t\"\212\001\n GetPersistentSegm"
|
||||
"entInfoResponse\022+\n\006status\030\001 \001(\0132\033.milvus"
|
||||
".proto.common.Status\0229\n\005infos\030\002 \003(\0132*.mi"
|
||||
"lvus.proto.milvus.PersistentSegmentInfo\""
|
||||
"\231\001\n\020QuerySegmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022"
|
||||
"\024\n\014collectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001"
|
||||
"(\003\022\020\n\010mem_size\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022\022"
|
||||
"\n\nindex_name\030\006 \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032G"
|
||||
"etQuerySegmentInfoRequest\022*\n\004base\030\001 \001(\0132"
|
||||
"\034.milvus.proto.common.MsgBase\022\016\n\006dbName\030"
|
||||
"\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\200\001\n\033GetQue"
|
||||
"rySegmentInfoResponse\022+\n\006status\030\001 \001(\0132\033."
|
||||
"milvus.proto.common.Status\0224\n\005infos\030\002 \003("
|
||||
"\0132%.milvus.proto.milvus.QuerySegmentInfo"
|
||||
"\"\025\n\023RegisterLinkRequest\"r\n\024RegisterLinkR"
|
||||
"esponse\022-\n\007address\030\001 \001(\0132\034.milvus.proto."
|
||||
"common.Address\022+\n\006status\030\002 \001(\0132\033.milvus."
|
||||
"proto.common.Status*>\n\017PlaceholderType\022\010"
|
||||
"\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013FloatVecto"
|
||||
"r\020e2\220\025\n\rMilvusService\022_\n\020CreateCollectio"
|
||||
"n\022,.milvus.proto.milvus.CreateCollection"
|
||||
"Request\032\033.milvus.proto.common.Status\"\000\022["
|
||||
"\n\016DropCollection\022*.milvus.proto.milvus.D"
|
||||
"ropCollectionRequest\032\033.milvus.proto.comm"
|
||||
"on.Status\"\000\022_\n\rHasCollection\022).milvus.pr"
|
||||
"oto.milvus.HasCollectionRequest\032!.milvus"
|
||||
".proto.milvus.BoolResponse\"\000\022[\n\016LoadColl"
|
||||
"ection\022*.milvus.proto.milvus.LoadCollect"
|
||||
"ionRequest\032\033.milvus.proto.common.Status\""
|
||||
"\000\022a\n\021ReleaseCollection\022-.milvus.proto.mi"
|
||||
"lvus.ReleaseCollectionRequest\032\033.milvus.p"
|
||||
"roto.common.Status\"\000\022w\n\022DescribeCollecti"
|
||||
"on\022..milvus.proto.milvus.DescribeCollect"
|
||||
"ionRequest\032/.milvus.proto.milvus.Describ"
|
||||
"eCollectionResponse\"\000\022\206\001\n\027GetCollectionS"
|
||||
"tatistics\0223.milvus.proto.milvus.GetColle"
|
||||
"ctionStatisticsRequest\0324.milvus.proto.mi"
|
||||
"lvus.GetCollectionStatisticsResponse\"\000\022n"
|
||||
"\n\017ShowCollections\022+.milvus.proto.milvus."
|
||||
"ShowCollectionsRequest\032,.milvus.proto.mi"
|
||||
"lvus.ShowCollectionsResponse\"\000\022]\n\017Create"
|
||||
"Partition\022+.milvus.proto.milvus.CreatePa"
|
||||
"rtitionRequest\032\033.milvus.proto.common.Sta"
|
||||
"tus\"\000\022Y\n\rDropPartition\022).milvus.proto.mi"
|
||||
"lvus.DropPartitionRequest\032\033.milvus.proto"
|
||||
".common.Status\"\000\022]\n\014HasPartition\022(.milvu"
|
||||
"s.proto.milvus.HasPartitionRequest\032!.mil"
|
||||
"vus.proto.milvus.BoolResponse\"\000\022[\n\016LoadP"
|
||||
"artitions\022*.milvus.proto.milvus.LoadPart"
|
||||
"itionsRequest\032\033.milvus.proto.common.Stat"
|
||||
"us\"\000\022a\n\021ReleasePartitions\022-.milvus.proto"
|
||||
".milvus.ReleasePartitionsRequest\032\033.milvu"
|
||||
"s.proto.common.Status\"\000\022\203\001\n\026GetPartition"
|
||||
"Statistics\0222.milvus.proto.milvus.GetPart"
|
||||
"itionStatisticsRequest\0323.milvus.proto.mi"
|
||||
"lvus.GetPartitionStatisticsResponse\"\000\022k\n"
|
||||
"\016ShowPartitions\022*.milvus.proto.milvus.Sh"
|
||||
"owPartitionsRequest\032+.milvus.proto.milvu"
|
||||
"s.ShowPartitionsResponse\"\000\022U\n\013CreateInde"
|
||||
"x\022\'.milvus.proto.milvus.CreateIndexReque"
|
||||
"st\032\033.milvus.proto.common.Status\"\000\022h\n\rDes"
|
||||
"cribeIndex\022).milvus.proto.milvus.Describ"
|
||||
"eIndexRequest\032*.milvus.proto.milvus.Desc"
|
||||
"ribeIndexResponse\"\000\022h\n\rGetIndexState\022).m"
|
||||
"ilvus.proto.milvus.GetIndexStateRequest\032"
|
||||
"*.milvus.proto.milvus.GetIndexStateRespo"
|
||||
"nse\"\000\022\200\001\n\025GetIndexBuildProgress\0221.milvus"
|
||||
".proto.milvus.GetIndexBuildProgressReque"
|
||||
"st\0322.milvus.proto.milvus.GetIndexBuildPr"
|
||||
"ogressResponse\"\000\022Q\n\tDropIndex\022%.milvus.p"
|
||||
"roto.milvus.DropIndexRequest\032\033.milvus.pr"
|
||||
"oto.common.Status\"\000\022S\n\006Insert\022\".milvus.p"
|
||||
"roto.milvus.InsertRequest\032#.milvus.proto"
|
||||
".milvus.InsertResponse\"\000\022R\n\006Search\022\".mil"
|
||||
"vus.proto.milvus.SearchRequest\032\".milvus."
|
||||
"proto.milvus.SearchResults\"\000\022I\n\005Flush\022!."
|
||||
"milvus.proto.milvus.FlushRequest\032\033.milvu"
|
||||
"s.proto.common.Status\"\000\022\211\001\n\030GetPersisten"
|
||||
"tSegmentInfo\0224.milvus.proto.milvus.GetPe"
|
||||
"rsistentSegmentInfoRequest\0325.milvus.prot"
|
||||
"o.milvus.GetPersistentSegmentInfoRespons"
|
||||
"e\"\000\022z\n\023GetQuerySegmentInfo\022/.milvus.prot"
|
||||
"o.milvus.GetQuerySegmentInfoRequest\0320.mi"
|
||||
"lvus.proto.milvus.GetQuerySegmentInfoRes"
|
||||
"ponse\"\000\022e\n\014RegisterLink\022(.milvus.proto.m"
|
||||
"ilvus.RegisterLinkRequest\032).milvus.proto"
|
||||
".milvus.RegisterLinkResponse\"\0002u\n\014ProxyS"
|
||||
"ervice\022e\n\014RegisterLink\022(.milvus.proto.mi"
|
||||
"lvus.RegisterLinkRequest\032).milvus.proto."
|
||||
"milvus.RegisterLinkResponse\"\000B5Z3github."
|
||||
"com/milvus-io/milvus/internal/proto/milv"
|
||||
"uspbb\006proto3"
|
||||
"(\t\022\031\n\021placeholder_group\030\006 \001(\014\022.\n\010dsl_typ"
|
||||
"e\030\007 \001(\0162\034.milvus.proto.common.DslType\0228\n"
|
||||
"\rsearch_params\030\010 \003(\0132!.milvus.proto.comm"
|
||||
"on.KeyValuePair\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010"
|
||||
"row_data\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSearch"
|
||||
"Results\022+\n\006status\030\001 \001(\0132\033.milvus.proto.c"
|
||||
"ommon.Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushReque"
|
||||
"st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M"
|
||||
"sgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collection_na"
|
||||
"mes\030\003 \003(\t\"\351\001\n\025PersistentSegmentInfo\022\021\n\ts"
|
||||
"egmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013"
|
||||
"partitionID\030\003 \001(\003\022\021\n\topen_time\030\004 \001(\004\022\023\n\013"
|
||||
"sealed_time\030\005 \001(\004\022\024\n\014flushed_time\030\006 \001(\004\022"
|
||||
"\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_size\030\010 \001(\003\0220\n\005s"
|
||||
"tate\030\t \001(\0162!.milvus.proto.common.Segment"
|
||||
"State\"u\n\037GetPersistentSegmentInfoRequest"
|
||||
"\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg"
|
||||
"Base\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionName\030\003"
|
||||
" \001(\t\"\212\001\n GetPersistentSegmentInfoRespons"
|
||||
"e\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common."
|
||||
"Status\0229\n\005infos\030\002 \003(\0132*.milvus.proto.mil"
|
||||
"vus.PersistentSegmentInfo\"\231\001\n\020QuerySegme"
|
||||
"ntInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionI"
|
||||
"D\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_size"
|
||||
"\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_name\030\006"
|
||||
" \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032GetQuerySegment"
|
||||
"InfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto"
|
||||
".common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016colle"
|
||||
"ctionName\030\003 \001(\t\"\200\001\n\033GetQuerySegmentInfoR"
|
||||
"esponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.c"
|
||||
"ommon.Status\0224\n\005infos\030\002 \003(\0132%.milvus.pro"
|
||||
"to.milvus.QuerySegmentInfo\"\025\n\023RegisterLi"
|
||||
"nkRequest\"r\n\024RegisterLinkResponse\022-\n\007add"
|
||||
"ress\030\001 \001(\0132\034.milvus.proto.common.Address"
|
||||
"\022+\n\006status\030\002 \001(\0132\033.milvus.proto.common.S"
|
||||
"tatus*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020\n\014Bi"
|
||||
"naryVector\020d\022\017\n\013FloatVector\020e2\220\025\n\rMilvus"
|
||||
"Service\022_\n\020CreateCollection\022,.milvus.pro"
|
||||
"to.milvus.CreateCollectionRequest\032\033.milv"
|
||||
"us.proto.common.Status\"\000\022[\n\016DropCollecti"
|
||||
"on\022*.milvus.proto.milvus.DropCollectionR"
|
||||
"equest\032\033.milvus.proto.common.Status\"\000\022_\n"
|
||||
"\rHasCollection\022).milvus.proto.milvus.Has"
|
||||
"CollectionRequest\032!.milvus.proto.milvus."
|
||||
"BoolResponse\"\000\022[\n\016LoadCollection\022*.milvu"
|
||||
"s.proto.milvus.LoadCollectionRequest\032\033.m"
|
||||
"ilvus.proto.common.Status\"\000\022a\n\021ReleaseCo"
|
||||
"llection\022-.milvus.proto.milvus.ReleaseCo"
|
||||
"llectionRequest\032\033.milvus.proto.common.St"
|
||||
"atus\"\000\022w\n\022DescribeCollection\022..milvus.pr"
|
||||
"oto.milvus.DescribeCollectionRequest\032/.m"
|
||||
"ilvus.proto.milvus.DescribeCollectionRes"
|
||||
"ponse\"\000\022\206\001\n\027GetCollectionStatistics\0223.mi"
|
||||
"lvus.proto.milvus.GetCollectionStatistic"
|
||||
"sRequest\0324.milvus.proto.milvus.GetCollec"
|
||||
"tionStatisticsResponse\"\000\022n\n\017ShowCollecti"
|
||||
"ons\022+.milvus.proto.milvus.ShowCollection"
|
||||
"sRequest\032,.milvus.proto.milvus.ShowColle"
|
||||
"ctionsResponse\"\000\022]\n\017CreatePartition\022+.mi"
|
||||
"lvus.proto.milvus.CreatePartitionRequest"
|
||||
"\032\033.milvus.proto.common.Status\"\000\022Y\n\rDropP"
|
||||
"artition\022).milvus.proto.milvus.DropParti"
|
||||
"tionRequest\032\033.milvus.proto.common.Status"
|
||||
"\"\000\022]\n\014HasPartition\022(.milvus.proto.milvus"
|
||||
".HasPartitionRequest\032!.milvus.proto.milv"
|
||||
"us.BoolResponse\"\000\022[\n\016LoadPartitions\022*.mi"
|
||||
"lvus.proto.milvus.LoadPartitionsRequest\032"
|
||||
"\033.milvus.proto.common.Status\"\000\022a\n\021Releas"
|
||||
"ePartitions\022-.milvus.proto.milvus.Releas"
|
||||
"ePartitionsRequest\032\033.milvus.proto.common"
|
||||
".Status\"\000\022\203\001\n\026GetPartitionStatistics\0222.m"
|
||||
"ilvus.proto.milvus.GetPartitionStatistic"
|
||||
"sRequest\0323.milvus.proto.milvus.GetPartit"
|
||||
"ionStatisticsResponse\"\000\022k\n\016ShowPartition"
|
||||
"s\022*.milvus.proto.milvus.ShowPartitionsRe"
|
||||
"quest\032+.milvus.proto.milvus.ShowPartitio"
|
||||
"nsResponse\"\000\022U\n\013CreateIndex\022\'.milvus.pro"
|
||||
"to.milvus.CreateIndexRequest\032\033.milvus.pr"
|
||||
"oto.common.Status\"\000\022h\n\rDescribeIndex\022).m"
|
||||
"ilvus.proto.milvus.DescribeIndexRequest\032"
|
||||
"*.milvus.proto.milvus.DescribeIndexRespo"
|
||||
"nse\"\000\022h\n\rGetIndexState\022).milvus.proto.mi"
|
||||
"lvus.GetIndexStateRequest\032*.milvus.proto"
|
||||
".milvus.GetIndexStateResponse\"\000\022\200\001\n\025GetI"
|
||||
"ndexBuildProgress\0221.milvus.proto.milvus."
|
||||
"GetIndexBuildProgressRequest\0322.milvus.pr"
|
||||
"oto.milvus.GetIndexBuildProgressResponse"
|
||||
"\"\000\022Q\n\tDropIndex\022%.milvus.proto.milvus.Dr"
|
||||
"opIndexRequest\032\033.milvus.proto.common.Sta"
|
||||
"tus\"\000\022S\n\006Insert\022\".milvus.proto.milvus.In"
|
||||
"sertRequest\032#.milvus.proto.milvus.Insert"
|
||||
"Response\"\000\022R\n\006Search\022\".milvus.proto.milv"
|
||||
"us.SearchRequest\032\".milvus.proto.milvus.S"
|
||||
"earchResults\"\000\022I\n\005Flush\022!.milvus.proto.m"
|
||||
"ilvus.FlushRequest\032\033.milvus.proto.common"
|
||||
".Status\"\000\022\211\001\n\030GetPersistentSegmentInfo\0224"
|
||||
".milvus.proto.milvus.GetPersistentSegmen"
|
||||
"tInfoRequest\0325.milvus.proto.milvus.GetPe"
|
||||
"rsistentSegmentInfoResponse\"\000\022z\n\023GetQuer"
|
||||
"ySegmentInfo\022/.milvus.proto.milvus.GetQu"
|
||||
"erySegmentInfoRequest\0320.milvus.proto.mil"
|
||||
"vus.GetQuerySegmentInfoResponse\"\000\022e\n\014Reg"
|
||||
"isterLink\022(.milvus.proto.milvus.Register"
|
||||
"LinkRequest\032).milvus.proto.milvus.Regist"
|
||||
"erLinkResponse\"\0002u\n\014ProxyService\022e\n\014Regi"
|
||||
"sterLink\022(.milvus.proto.milvus.RegisterL"
|
||||
"inkRequest\032).milvus.proto.milvus.Registe"
|
||||
"rLinkResponse\"\000B5Z3github.com/milvus-io/"
|
||||
"milvus/internal/proto/milvuspbb\006proto3"
|
||||
;
|
||||
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = {
|
||||
&::descriptor_table_common_2eproto,
|
||||
|
@ -1841,7 +1846,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mil
|
|||
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_milvus_2eproto_once;
|
||||
static bool descriptor_table_milvus_2eproto_initialized = false;
|
||||
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_milvus_2eproto = {
|
||||
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9332,
|
||||
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9438,
|
||||
&descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 51, 2,
|
||||
schemas, file_default_instances, TableStruct_milvus_2eproto::offsets,
|
||||
file_level_metadata_milvus_2eproto, 51, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto,
|
||||
|
@ -17832,6 +17837,9 @@ void SearchRequest::clear_base() {
|
|||
}
|
||||
base_ = nullptr;
|
||||
}
|
||||
void SearchRequest::clear_search_params() {
|
||||
search_params_.Clear();
|
||||
}
|
||||
SearchRequest::SearchRequest()
|
||||
: ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
|
||||
SharedCtor();
|
||||
|
@ -17840,7 +17848,8 @@ SearchRequest::SearchRequest()
|
|||
SearchRequest::SearchRequest(const SearchRequest& from)
|
||||
: ::PROTOBUF_NAMESPACE_ID::Message(),
|
||||
_internal_metadata_(nullptr),
|
||||
partition_names_(from.partition_names_) {
|
||||
partition_names_(from.partition_names_),
|
||||
search_params_(from.search_params_) {
|
||||
_internal_metadata_.MergeFrom(from._internal_metadata_);
|
||||
db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
if (!from.db_name().empty()) {
|
||||
|
@ -17863,6 +17872,7 @@ SearchRequest::SearchRequest(const SearchRequest& from)
|
|||
} else {
|
||||
base_ = nullptr;
|
||||
}
|
||||
dsl_type_ = from.dsl_type_;
|
||||
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.SearchRequest)
|
||||
}
|
||||
|
||||
|
@ -17872,7 +17882,9 @@ void SearchRequest::SharedCtor() {
|
|||
collection_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
dsl_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
placeholder_group_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
base_ = nullptr;
|
||||
::memset(&base_, 0, static_cast<size_t>(
|
||||
reinterpret_cast<char*>(&dsl_type_) -
|
||||
reinterpret_cast<char*>(&base_)) + sizeof(dsl_type_));
|
||||
}
|
||||
|
||||
SearchRequest::~SearchRequest() {
|
||||
|
@ -17904,6 +17916,7 @@ void SearchRequest::Clear() {
|
|||
(void) cached_has_bits;
|
||||
|
||||
partition_names_.Clear();
|
||||
search_params_.Clear();
|
||||
db_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
collection_name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
dsl_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
|
||||
|
@ -17912,6 +17925,7 @@ void SearchRequest::Clear() {
|
|||
delete base_;
|
||||
}
|
||||
base_ = nullptr;
|
||||
dsl_type_ = 0;
|
||||
_internal_metadata_.Clear();
|
||||
}
|
||||
|
||||
|
@ -17970,6 +17984,26 @@ const char* SearchRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_
|
|||
CHK_(ptr);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
case 7:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
|
||||
::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
|
||||
CHK_(ptr);
|
||||
set_dsl_type(static_cast<::milvus::proto::common::DslType>(val));
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
case 8:
|
||||
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
|
||||
ptr -= 1;
|
||||
do {
|
||||
ptr += 1;
|
||||
ptr = ctx->ParseMessage(add_search_params(), ptr);
|
||||
CHK_(ptr);
|
||||
if (!ctx->DataAvailable(ptr)) break;
|
||||
} while (::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<::PROTOBUF_NAMESPACE_ID::uint8>(ptr) == 66);
|
||||
} else goto handle_unusual;
|
||||
continue;
|
||||
default: {
|
||||
handle_unusual:
|
||||
if ((tag & 7) == 4 || tag == 0) {
|
||||
|
@ -18083,6 +18117,31 @@ bool SearchRequest::MergePartialFromCodedStream(
|
|||
break;
|
||||
}
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
case 7: {
|
||||
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (56 & 0xFF)) {
|
||||
int value = 0;
|
||||
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
|
||||
int, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_ENUM>(
|
||||
input, &value)));
|
||||
set_dsl_type(static_cast< ::milvus::proto::common::DslType >(value));
|
||||
} else {
|
||||
goto handle_unusual;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
case 8: {
|
||||
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) {
|
||||
DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
|
||||
input, add_search_params()));
|
||||
} else {
|
||||
goto handle_unusual;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
handle_unusual:
|
||||
if (tag == 0) {
|
||||
|
@ -18162,6 +18221,21 @@ void SearchRequest::SerializeWithCachedSizes(
|
|||
6, this->placeholder_group(), output);
|
||||
}
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
if (this->dsl_type() != 0) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnum(
|
||||
7, this->dsl_type(), output);
|
||||
}
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
for (unsigned int i = 0,
|
||||
n = static_cast<unsigned int>(this->search_params_size()); i < n; i++) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
|
||||
8,
|
||||
this->search_params(static_cast<int>(i)),
|
||||
output);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
|
||||
_internal_metadata_.unknown_fields(), output);
|
||||
|
@ -18232,6 +18306,20 @@ void SearchRequest::SerializeWithCachedSizes(
|
|||
6, this->placeholder_group(), target);
|
||||
}
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
if (this->dsl_type() != 0) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
|
||||
7, this->dsl_type(), target);
|
||||
}
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
for (unsigned int i = 0,
|
||||
n = static_cast<unsigned int>(this->search_params_size()); i < n; i++) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
|
||||
InternalWriteMessageToArray(
|
||||
8, this->search_params(static_cast<int>(i)), target);
|
||||
}
|
||||
|
||||
if (_internal_metadata_.have_unknown_fields()) {
|
||||
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
|
||||
_internal_metadata_.unknown_fields(), target);
|
||||
|
@ -18261,6 +18349,17 @@ size_t SearchRequest::ByteSizeLong() const {
|
|||
this->partition_names(i));
|
||||
}
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
{
|
||||
unsigned int count = static_cast<unsigned int>(this->search_params_size());
|
||||
total_size += 1UL * count;
|
||||
for (unsigned int i = 0; i < count; i++) {
|
||||
total_size +=
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
|
||||
this->search_params(static_cast<int>(i)));
|
||||
}
|
||||
}
|
||||
|
||||
// string db_name = 2;
|
||||
if (this->db_name().size() > 0) {
|
||||
total_size += 1 +
|
||||
|
@ -18296,6 +18395,12 @@ size_t SearchRequest::ByteSizeLong() const {
|
|||
*base_);
|
||||
}
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
if (this->dsl_type() != 0) {
|
||||
total_size += 1 +
|
||||
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->dsl_type());
|
||||
}
|
||||
|
||||
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
|
||||
SetCachedSize(cached_size);
|
||||
return total_size;
|
||||
|
@ -18324,6 +18429,7 @@ void SearchRequest::MergeFrom(const SearchRequest& from) {
|
|||
(void) cached_has_bits;
|
||||
|
||||
partition_names_.MergeFrom(from.partition_names_);
|
||||
search_params_.MergeFrom(from.search_params_);
|
||||
if (from.db_name().size() > 0) {
|
||||
|
||||
db_name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.db_name_);
|
||||
|
@ -18343,6 +18449,9 @@ void SearchRequest::MergeFrom(const SearchRequest& from) {
|
|||
if (from.has_base()) {
|
||||
mutable_base()->::milvus::proto::common::MsgBase::MergeFrom(from.base());
|
||||
}
|
||||
if (from.dsl_type() != 0) {
|
||||
set_dsl_type(from.dsl_type());
|
||||
}
|
||||
}
|
||||
|
||||
void SearchRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
|
||||
|
@ -18367,6 +18476,7 @@ void SearchRequest::InternalSwap(SearchRequest* other) {
|
|||
using std::swap;
|
||||
_internal_metadata_.Swap(&other->_internal_metadata_);
|
||||
partition_names_.InternalSwap(CastToBase(&other->partition_names_));
|
||||
CastToBase(&search_params_)->InternalSwap(CastToBase(&other->search_params_));
|
||||
db_name_.Swap(&other->db_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
|
||||
GetArenaNoVirtual());
|
||||
collection_name_.Swap(&other->collection_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
|
||||
|
@ -18376,6 +18486,7 @@ void SearchRequest::InternalSwap(SearchRequest* other) {
|
|||
placeholder_group_.Swap(&other->placeholder_group_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
|
||||
GetArenaNoVirtual());
|
||||
swap(base_, other->base_);
|
||||
swap(dsl_type_, other->dsl_type_);
|
||||
}
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::Metadata SearchRequest::GetMetadata() const {
|
||||
|
|
|
@ -6755,11 +6755,13 @@ class SearchRequest :
|
|||
|
||||
enum : int {
|
||||
kPartitionNamesFieldNumber = 4,
|
||||
kSearchParamsFieldNumber = 8,
|
||||
kDbNameFieldNumber = 2,
|
||||
kCollectionNameFieldNumber = 3,
|
||||
kDslFieldNumber = 5,
|
||||
kPlaceholderGroupFieldNumber = 6,
|
||||
kBaseFieldNumber = 1,
|
||||
kDslTypeFieldNumber = 7,
|
||||
};
|
||||
// repeated string partition_names = 4;
|
||||
int partition_names_size() const;
|
||||
|
@ -6778,6 +6780,17 @@ class SearchRequest :
|
|||
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& partition_names() const;
|
||||
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_partition_names();
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
int search_params_size() const;
|
||||
void clear_search_params();
|
||||
::milvus::proto::common::KeyValuePair* mutable_search_params(int index);
|
||||
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >*
|
||||
mutable_search_params();
|
||||
const ::milvus::proto::common::KeyValuePair& search_params(int index) const;
|
||||
::milvus::proto::common::KeyValuePair* add_search_params();
|
||||
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >&
|
||||
search_params() const;
|
||||
|
||||
// string db_name = 2;
|
||||
void clear_db_name();
|
||||
const std::string& db_name() const;
|
||||
|
@ -6830,17 +6843,24 @@ class SearchRequest :
|
|||
::milvus::proto::common::MsgBase* mutable_base();
|
||||
void set_allocated_base(::milvus::proto::common::MsgBase* base);
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
void clear_dsl_type();
|
||||
::milvus::proto::common::DslType dsl_type() const;
|
||||
void set_dsl_type(::milvus::proto::common::DslType value);
|
||||
|
||||
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.SearchRequest)
|
||||
private:
|
||||
class _Internal;
|
||||
|
||||
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
|
||||
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> partition_names_;
|
||||
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair > search_params_;
|
||||
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr db_name_;
|
||||
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_name_;
|
||||
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr dsl_;
|
||||
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr placeholder_group_;
|
||||
::milvus::proto::common::MsgBase* base_;
|
||||
int dsl_type_;
|
||||
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
|
||||
friend struct ::TableStruct_milvus_2eproto;
|
||||
};
|
||||
|
@ -14648,6 +14668,47 @@ inline void SearchRequest::set_allocated_placeholder_group(std::string* placehol
|
|||
// @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.SearchRequest.placeholder_group)
|
||||
}
|
||||
|
||||
// .milvus.proto.common.DslType dsl_type = 7;
|
||||
inline void SearchRequest::clear_dsl_type() {
|
||||
dsl_type_ = 0;
|
||||
}
|
||||
inline ::milvus::proto::common::DslType SearchRequest::dsl_type() const {
|
||||
// @@protoc_insertion_point(field_get:milvus.proto.milvus.SearchRequest.dsl_type)
|
||||
return static_cast< ::milvus::proto::common::DslType >(dsl_type_);
|
||||
}
|
||||
inline void SearchRequest::set_dsl_type(::milvus::proto::common::DslType value) {
|
||||
|
||||
dsl_type_ = value;
|
||||
// @@protoc_insertion_point(field_set:milvus.proto.milvus.SearchRequest.dsl_type)
|
||||
}
|
||||
|
||||
// repeated .milvus.proto.common.KeyValuePair search_params = 8;
|
||||
inline int SearchRequest::search_params_size() const {
|
||||
return search_params_.size();
|
||||
}
|
||||
inline ::milvus::proto::common::KeyValuePair* SearchRequest::mutable_search_params(int index) {
|
||||
// @@protoc_insertion_point(field_mutable:milvus.proto.milvus.SearchRequest.search_params)
|
||||
return search_params_.Mutable(index);
|
||||
}
|
||||
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >*
|
||||
SearchRequest::mutable_search_params() {
|
||||
// @@protoc_insertion_point(field_mutable_list:milvus.proto.milvus.SearchRequest.search_params)
|
||||
return &search_params_;
|
||||
}
|
||||
inline const ::milvus::proto::common::KeyValuePair& SearchRequest::search_params(int index) const {
|
||||
// @@protoc_insertion_point(field_get:milvus.proto.milvus.SearchRequest.search_params)
|
||||
return search_params_.Get(index);
|
||||
}
|
||||
inline ::milvus::proto::common::KeyValuePair* SearchRequest::add_search_params() {
|
||||
// @@protoc_insertion_point(field_add:milvus.proto.milvus.SearchRequest.search_params)
|
||||
return search_params_.Add();
|
||||
}
|
||||
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::milvus::proto::common::KeyValuePair >&
|
||||
SearchRequest::search_params() const {
|
||||
// @@protoc_insertion_point(field_list:milvus.proto.milvus.SearchRequest.search_params)
|
||||
return search_params_;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Hits
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -27,6 +27,7 @@ set(MILVUS_QUERY_SRCS
|
|||
SearchOnIndex.cpp
|
||||
SearchBruteForce.cpp
|
||||
SubQueryResult.cpp
|
||||
PlanProto.cpp
|
||||
)
|
||||
add_library(milvus_query ${MILVUS_QUERY_SRCS})
|
||||
target_link_libraries(milvus_query milvus_proto milvus_utils knowhere boost_bitset_ext)
|
||||
|
|
|
@ -41,7 +41,7 @@ struct UnaryExpr : Expr {
|
|||
};
|
||||
|
||||
struct BoolUnaryExpr : UnaryExpr {
|
||||
enum class OpType { LogicalNot };
|
||||
enum class OpType { Invalid = 0, LogicalNot = 1 };
|
||||
OpType op_type_;
|
||||
|
||||
public:
|
||||
|
@ -51,7 +51,7 @@ struct BoolUnaryExpr : UnaryExpr {
|
|||
|
||||
struct BoolBinaryExpr : BinaryExpr {
|
||||
// Note: bitA - bitB == bitA & ~bitB, alias to LogicalMinus
|
||||
enum class OpType { LogicalAnd, LogicalOr, LogicalXor, LogicalMinus };
|
||||
enum class OpType { Invalid = 0, LogicalAnd = 1, LogicalOr = 2, LogicalXor = 3, LogicalMinus = 4 };
|
||||
OpType op_type_;
|
||||
|
||||
public:
|
||||
|
@ -76,7 +76,15 @@ struct TermExpr : Expr {
|
|||
struct RangeExpr : Expr {
|
||||
FieldOffset field_offset_;
|
||||
DataType data_type_ = DataType::NONE;
|
||||
enum class OpType { GreaterThan = 0, GreaterEqual = 1, LessThan = 2, LessEqual = 3, Equal, NotEqual };
|
||||
enum class OpType {
|
||||
Invalid = 0,
|
||||
GreaterThan = 1,
|
||||
GreaterEqual = 2,
|
||||
LessThan = 3,
|
||||
LessEqual = 4,
|
||||
Equal = 5,
|
||||
NotEqual = 6
|
||||
};
|
||||
static const std::map<std::string, OpType> mapping_; // op_name -> op
|
||||
|
||||
// std::vector<std::tuple<OpType, std::any>> conditions_;
|
||||
|
|
|
@ -18,11 +18,13 @@
|
|||
#include "pb/milvus.pb.h"
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <boost/align/aligned_allocator.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <algorithm>
|
||||
#include "query/generated/VerifyPlanNodeVisitor.h"
|
||||
#include "query/generated/ExtractInfoPlanNodeVisitor.h"
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include "query/PlanProto.h"
|
||||
#include "query/generated/ShowPlanNodeVisitor.h"
|
||||
|
||||
namespace milvus::query {
|
||||
|
||||
|
@ -47,7 +49,7 @@ class Parser {
|
|||
|
||||
private:
|
||||
std::unique_ptr<Plan>
|
||||
CreatePlanImpl(const std::string& dsl_str);
|
||||
CreatePlanImpl(const Json& dsl);
|
||||
|
||||
explicit Parser(const Schema& schema) : schema(schema) {
|
||||
}
|
||||
|
@ -131,8 +133,7 @@ Parser::ParseRangeNode(const Json& out_body) {
|
|||
}
|
||||
|
||||
std::unique_ptr<Plan>
|
||||
Parser::CreatePlanImpl(const std::string& dsl_str) {
|
||||
auto dsl = Json::parse(dsl_str);
|
||||
Parser::CreatePlanImpl(const Json& dsl) {
|
||||
auto bool_dsl = dsl.at("bool");
|
||||
auto predicate = ParseAnyNode(bool_dsl);
|
||||
Assert(vector_node_opt_.has_value());
|
||||
|
@ -316,7 +317,17 @@ ParsePlaceholderGroup(const Plan* plan, const std::string& blob) {
|
|||
|
||||
std::unique_ptr<Plan>
|
||||
CreatePlan(const Schema& schema, const std::string& dsl_str) {
|
||||
auto plan = Parser(schema).CreatePlanImpl(dsl_str);
|
||||
Json dsl;
|
||||
try {
|
||||
dsl = json::parse(dsl_str);
|
||||
} catch (std::exception& e) {
|
||||
// assume protobuf text format
|
||||
proto::plan::PlanNode plan_node;
|
||||
auto ok = google::protobuf::TextFormat::ParseFromString(dsl_str, &plan_node);
|
||||
AssertInfo(ok, "Failed to parse");
|
||||
return ProtoParser(schema).CreatePlan(plan_node);
|
||||
}
|
||||
auto plan = Parser(schema).CreatePlanImpl(dsl);
|
||||
return plan;
|
||||
}
|
||||
|
||||
|
@ -468,4 +479,19 @@ GetNumOfQueries(const PlaceholderGroup* group) {
|
|||
return group->at(0).num_of_queries_;
|
||||
}
|
||||
|
||||
void
|
||||
Plan::check_identical(Plan& other) {
|
||||
Assert(&schema_ == &other.schema_);
|
||||
auto json = ShowPlanNodeVisitor().call_child(*this->plan_node_);
|
||||
auto other_json = ShowPlanNodeVisitor().call_child(*other.plan_node_);
|
||||
std::cout << json.dump(2) << std::endl << other_json.dump(2) << std::endl;
|
||||
Assert(json.dump(2) == other_json.dump(2));
|
||||
Assert(this->extra_info_opt_.has_value() == other.extra_info_opt_.has_value());
|
||||
if (this->extra_info_opt_.has_value()) {
|
||||
Assert(this->extra_info_opt_->involved_fields_ == other.extra_info_opt_->involved_fields_);
|
||||
}
|
||||
Assert(this->tag2field_ == other.tag2field_);
|
||||
Assert(this->target_entries_ == other.target_entries_);
|
||||
}
|
||||
|
||||
} // namespace milvus::query
|
||||
|
|
|
@ -52,6 +52,8 @@ struct Plan {
|
|||
std::unique_ptr<VectorPlanNode> plan_node_;
|
||||
std::map<std::string, FieldOffset> tag2field_; // PlaceholderName -> FieldOffset
|
||||
std::vector<FieldOffset> target_entries_;
|
||||
void
|
||||
check_identical(Plan& other);
|
||||
|
||||
public:
|
||||
std::optional<ExtractedPlanInfo> extra_info_opt_;
|
||||
|
@ -78,6 +80,8 @@ struct Placeholder {
|
|||
}
|
||||
};
|
||||
|
||||
using PlanPtr = std::unique_ptr<Plan>;
|
||||
|
||||
struct PlaceholderGroup : std::vector<Placeholder> {
|
||||
using std::vector<Placeholder>::vector;
|
||||
};
|
||||
|
|
|
@ -20,16 +20,8 @@
|
|||
namespace milvus::query {
|
||||
class PlanNodeVisitor;
|
||||
|
||||
enum class PlanNodeType {
|
||||
kInvalid = 0,
|
||||
kScan,
|
||||
kANNS,
|
||||
};
|
||||
|
||||
// Base of all Nodes
|
||||
struct PlanNode {
|
||||
PlanNodeType node_type;
|
||||
|
||||
public:
|
||||
virtual ~PlanNode() = default;
|
||||
virtual void
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
// Copyright (C) 2019-2020 Zilliz. 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
|
||||
|
||||
#include "query/PlanProto.h"
|
||||
#include "PlanNode.h"
|
||||
#include "ExprImpl.h"
|
||||
#include "pb/plan.pb.h"
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include "query/generated/ExtractInfoExprVisitor.h"
|
||||
|
||||
namespace milvus::query {
|
||||
namespace planpb = milvus::proto::plan;
|
||||
|
||||
ExprPtr
|
||||
ProtoParser::ExprFromProto(const planpb::Expr& expr_proto) {
|
||||
// TODO: make naive works
|
||||
Assert(expr_proto.has_range_expr());
|
||||
|
||||
auto& range_expr = expr_proto.range_expr();
|
||||
auto& columen_info = range_expr.column_info();
|
||||
auto field_id = FieldId(columen_info.field_id());
|
||||
auto field_offset = schema.get_offset(field_id);
|
||||
auto data_type = schema[field_offset].get_data_type();
|
||||
involved_fields.set(field_offset.get(), true);
|
||||
|
||||
// auto& field_meta = schema[field_offset];
|
||||
ExprPtr result = [&]() {
|
||||
switch ((DataType)columen_info.data_type()) {
|
||||
case DataType::INT64: {
|
||||
auto result = std::make_unique<RangeExprImpl<int64_t>>();
|
||||
result->field_offset_ = field_offset;
|
||||
result->data_type_ = data_type;
|
||||
Assert(range_expr.ops_size() == range_expr.values_size());
|
||||
auto sz = range_expr.ops_size();
|
||||
// TODO simplify this
|
||||
for (int i = 0; i < sz; ++i) {
|
||||
result->conditions_.emplace_back((RangeExpr::OpType)range_expr.ops(i),
|
||||
range_expr.values(i).int64_val());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
default: {
|
||||
PanicInfo("unsupported yet");
|
||||
}
|
||||
}
|
||||
}();
|
||||
return result;
|
||||
}
|
||||
|
||||
std::unique_ptr<VectorPlanNode>
|
||||
ProtoParser::PlanNodeFromProto(const planpb::PlanNode& plan_node_proto) {
|
||||
// TODO: add more buffs
|
||||
Assert(plan_node_proto.has_vector_anns());
|
||||
auto& anns_proto = plan_node_proto.vector_anns();
|
||||
AssertInfo(anns_proto.is_binary() == false, "unimplemented");
|
||||
auto expr_opt = [&]() -> std::optional<ExprPtr> {
|
||||
if (!anns_proto.has_predicates()) {
|
||||
return std::nullopt;
|
||||
} else {
|
||||
return ExprFromProto(anns_proto.predicates());
|
||||
}
|
||||
}();
|
||||
|
||||
auto& query_info_proto = anns_proto.query_info();
|
||||
|
||||
QueryInfo query_info;
|
||||
auto field_id = FieldId(anns_proto.field_id());
|
||||
auto field_offset = schema.get_offset(field_id);
|
||||
query_info.field_offset_ = field_offset;
|
||||
this->involved_fields.set(field_offset.get(), true);
|
||||
|
||||
query_info.metric_type_ = GetMetricType(query_info_proto.metric_type());
|
||||
query_info.topK_ = query_info_proto.topk();
|
||||
query_info.search_params_ = json::parse(query_info_proto.search_params());
|
||||
|
||||
auto plan_node = [&]() -> std::unique_ptr<VectorPlanNode> {
|
||||
if (anns_proto.is_binary()) {
|
||||
return std::make_unique<BinaryVectorANNS>();
|
||||
} else {
|
||||
return std::make_unique<FloatVectorANNS>();
|
||||
}
|
||||
}();
|
||||
plan_node->placeholder_tag_ = anns_proto.placeholder_tag();
|
||||
plan_node->predicate_ = std::move(expr_opt);
|
||||
plan_node->query_info_ = std::move(query_info);
|
||||
return plan_node;
|
||||
}
|
||||
|
||||
std::unique_ptr<Plan>
|
||||
ProtoParser::CreatePlan(const proto::plan::PlanNode& plan_node_proto) {
|
||||
auto plan = std::make_unique<Plan>(schema);
|
||||
|
||||
auto plan_node = PlanNodeFromProto(plan_node_proto);
|
||||
plan->tag2field_["$0"] = plan_node->query_info_.field_offset_;
|
||||
plan->plan_node_ = std::move(plan_node);
|
||||
ExtractedPlanInfo extract_info(schema.size());
|
||||
extract_info.involved_fields_ = std::move(involved_fields);
|
||||
plan->extra_info_opt_ = std::move(extract_info);
|
||||
return plan;
|
||||
}
|
||||
|
||||
} // namespace milvus::query
|
|
@ -0,0 +1,40 @@
|
|||
// Copyright (C) 2019-2020 Zilliz. 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
|
||||
|
||||
#include "common/Schema.h"
|
||||
#include "query/PlanNode.h"
|
||||
#include "pb/plan.pb.h"
|
||||
#include "query/Plan.h"
|
||||
#include <boost/dynamic_bitset.hpp>
|
||||
#include <memory>
|
||||
|
||||
namespace milvus::query {
|
||||
|
||||
class ProtoParser {
|
||||
public:
|
||||
explicit ProtoParser(const Schema& schema) : schema(schema), involved_fields(schema.size()) {
|
||||
}
|
||||
|
||||
ExprPtr
|
||||
ExprFromProto(const proto::plan::Expr& expr_proto);
|
||||
|
||||
std::unique_ptr<VectorPlanNode>
|
||||
PlanNodeFromProto(const proto::plan::PlanNode& plan_node_proto);
|
||||
|
||||
std::unique_ptr<Plan>
|
||||
CreatePlan(const proto::plan::PlanNode& plan_node_proto);
|
||||
|
||||
private:
|
||||
const Schema& schema;
|
||||
boost::dynamic_bitset<> involved_fields;
|
||||
};
|
||||
|
||||
} // namespace milvus::query
|
|
@ -129,8 +129,6 @@ ShowExprVisitor::visit(TermExpr& expr) {
|
|||
return TermExtract<double>(expr);
|
||||
case DataType::FLOAT:
|
||||
return TermExtract<float>(expr);
|
||||
// case DataType::BOOL:
|
||||
// return TermExtract<bool>(expr);
|
||||
default:
|
||||
PanicInfo("unsupported type");
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ set(MILVUS_TEST_FILES
|
|||
test_load.cpp
|
||||
init_gtest.cpp
|
||||
test_init.cpp
|
||||
test_plan_proto.cpp
|
||||
)
|
||||
|
||||
add_executable(all_tests
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
// Copyright (C) 2019-2020 Zilliz. 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
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <google/protobuf/text_format.h>
|
||||
#include "query/PlanProto.h"
|
||||
#include "pb/plan.pb.h"
|
||||
#include "query/generated/ShowPlanNodeVisitor.h"
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
#include <random>
|
||||
|
||||
using namespace milvus;
|
||||
using namespace milvus::query;
|
||||
namespace planpb = proto::plan;
|
||||
|
||||
TEST(PlanProto, Naive) {
|
||||
auto schema = std::make_unique<Schema>();
|
||||
schema->AddField(FieldName("vectorfield"), FieldId(101), DataType::VECTOR_FLOAT, 16, MetricType::METRIC_L2);
|
||||
schema->AddField(FieldName("int64field"), FieldId(100), DataType::INT64);
|
||||
std::string proto_text = R"(
|
||||
vector_anns: <
|
||||
field_id: 101
|
||||
predicates: <
|
||||
range_expr: <
|
||||
column_info: <
|
||||
field_id: 100
|
||||
data_type: Int64
|
||||
>
|
||||
ops: GreaterThan
|
||||
values: <
|
||||
int64_val: 3
|
||||
>
|
||||
>
|
||||
>
|
||||
query_info: <
|
||||
topk: 10
|
||||
metric_type: "L2"
|
||||
search_params: "{\"nprobe\": 10}"
|
||||
>
|
||||
placeholder_tag: "$0"
|
||||
>
|
||||
)";
|
||||
planpb::PlanNode node_proto;
|
||||
google::protobuf::TextFormat::ParseFromString(proto_text, &node_proto);
|
||||
std::cout << node_proto.DebugString();
|
||||
auto plan = ProtoParser(*schema).CreatePlan(node_proto);
|
||||
|
||||
ShowPlanNodeVisitor visitor;
|
||||
auto json = visitor.call_child(*plan->plan_node_);
|
||||
std::cout << json.dump(2);
|
||||
auto extra_info = plan->extra_info_opt_.value();
|
||||
|
||||
std::string dsl_text = R"(
|
||||
{
|
||||
"bool": {
|
||||
"must": [
|
||||
{
|
||||
"range": {
|
||||
"int64field": {
|
||||
"GT": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"vector": {
|
||||
"vectorfield": {
|
||||
"metric_type": "L2",
|
||||
"params": {
|
||||
"nprobe": 10
|
||||
},
|
||||
"query": "$0",
|
||||
"topk": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
)";
|
||||
auto ref_plan = CreatePlan(*schema, dsl_text);
|
||||
plan->check_identical(*ref_plan);
|
||||
}
|
|
@ -134,6 +134,10 @@ message MsgBase {
|
|||
int64 sourceID = 4;
|
||||
}
|
||||
|
||||
enum DslType {
|
||||
Dsl = 0;
|
||||
BoolExprV1 = 1;
|
||||
}
|
||||
|
||||
// Don't Modify This. @czs
|
||||
message MsgHeader {
|
||||
|
|
|
@ -330,6 +330,31 @@ func (MsgType) EnumDescriptor() ([]byte, []int) {
|
|||
return fileDescriptor_555bd8c177793206, []int{3}
|
||||
}
|
||||
|
||||
type DslType int32
|
||||
|
||||
const (
|
||||
DslType_Dsl DslType = 0
|
||||
DslType_BoolExprV1 DslType = 1
|
||||
)
|
||||
|
||||
var DslType_name = map[int32]string{
|
||||
0: "Dsl",
|
||||
1: "BoolExprV1",
|
||||
}
|
||||
|
||||
var DslType_value = map[string]int32{
|
||||
"Dsl": 0,
|
||||
"BoolExprV1": 1,
|
||||
}
|
||||
|
||||
func (x DslType) String() string {
|
||||
return proto.EnumName(DslType_name, int32(x))
|
||||
}
|
||||
|
||||
func (DslType) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_555bd8c177793206, []int{4}
|
||||
}
|
||||
|
||||
type Status struct {
|
||||
ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=milvus.proto.common.ErrorCode" json:"error_code,omitempty"`
|
||||
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
|
||||
|
@ -618,6 +643,7 @@ func init() {
|
|||
proto.RegisterEnum("milvus.proto.common.IndexState", IndexState_name, IndexState_value)
|
||||
proto.RegisterEnum("milvus.proto.common.SegmentState", SegmentState_name, SegmentState_value)
|
||||
proto.RegisterEnum("milvus.proto.common.MsgType", MsgType_name, MsgType_value)
|
||||
proto.RegisterEnum("milvus.proto.common.DslType", DslType_name, DslType_value)
|
||||
proto.RegisterType((*Status)(nil), "milvus.proto.common.Status")
|
||||
proto.RegisterType((*KeyValuePair)(nil), "milvus.proto.common.KeyValuePair")
|
||||
proto.RegisterType((*Blob)(nil), "milvus.proto.common.Blob")
|
||||
|
@ -629,77 +655,78 @@ func init() {
|
|||
func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
|
||||
|
||||
var fileDescriptor_555bd8c177793206 = []byte{
|
||||
// 1137 bytes of a gzipped FileDescriptorProto
|
||||
// 1164 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xcb, 0x6e, 0xdb, 0x46,
|
||||
0x14, 0x0d, 0x25, 0xc5, 0x32, 0xaf, 0x64, 0x79, 0x3c, 0x7e, 0xc4, 0x49, 0x8d, 0x22, 0xf0, 0x2a,
|
||||
0x30, 0x10, 0xbb, 0x68, 0xd0, 0x76, 0x95, 0x45, 0x2c, 0xc5, 0x8e, 0x90, 0xf8, 0x51, 0xca, 0x09,
|
||||
0x82, 0x6e, 0x02, 0x9a, 0xbc, 0xa6, 0xa7, 0x21, 0x67, 0xd4, 0x99, 0x61, 0x12, 0xfd, 0x45, 0x9b,
|
||||
0x45, 0xff, 0xa0, 0xbb, 0xb6, 0xe8, 0xbb, 0xbf, 0xd0, 0xf7, 0xba, 0x9f, 0xd0, 0x0f, 0xe8, 0xbb,
|
||||
0x9b, 0xe2, 0x0e, 0x29, 0x91, 0x05, 0xd2, 0xdd, 0xdc, 0x33, 0x77, 0xce, 0x3d, 0xf7, 0x45, 0x42,
|
||||
0x37, 0x52, 0x59, 0xa6, 0xe4, 0xf6, 0x58, 0x2b, 0xab, 0xf8, 0x72, 0x26, 0xd2, 0x27, 0xb9, 0x29,
|
||||
0xac, 0xed, 0xe2, 0x6a, 0xf3, 0x11, 0xcc, 0x8d, 0x6c, 0x68, 0x73, 0xc3, 0x6f, 0x02, 0xa0, 0xd6,
|
||||
0x4a, 0x3f, 0x8a, 0x54, 0x8c, 0xeb, 0xde, 0x55, 0xef, 0x5a, 0xef, 0xd5, 0x97, 0xb7, 0x5f, 0xf0,
|
||||
0x66, 0xfb, 0x36, 0xb9, 0xf5, 0x55, 0x8c, 0x81, 0x8f, 0xd3, 0x23, 0x5f, 0x83, 0x39, 0x8d, 0xa1,
|
||||
0x51, 0x72, 0xbd, 0x71, 0xd5, 0xbb, 0xe6, 0x07, 0xa5, 0xb5, 0xf9, 0x3a, 0x74, 0xef, 0xe2, 0xe4,
|
||||
0x41, 0x98, 0xe6, 0x78, 0x1c, 0x0a, 0xcd, 0x19, 0x34, 0x1f, 0xe3, 0xc4, 0xf1, 0xfb, 0x01, 0x1d,
|
||||
0xf9, 0x0a, 0x5c, 0x7c, 0x42, 0xd7, 0xe5, 0xc3, 0xc2, 0xd8, 0xdc, 0x80, 0xd6, 0x6e, 0xaa, 0x4e,
|
||||
0xab, 0x5b, 0x7a, 0xd1, 0x9d, 0xde, 0x5e, 0x87, 0xf6, 0xad, 0x38, 0xd6, 0x68, 0x0c, 0xef, 0x41,
|
||||
0x43, 0x8c, 0x4b, 0xbe, 0x86, 0x18, 0x73, 0x0e, 0xad, 0xb1, 0xd2, 0xd6, 0xb1, 0x35, 0x03, 0x77,
|
||||
0xde, 0x7c, 0xee, 0x41, 0xfb, 0xc0, 0x24, 0xbb, 0xa1, 0x41, 0xfe, 0x06, 0xcc, 0x67, 0x26, 0x79,
|
||||
0x64, 0x27, 0xe3, 0x69, 0x96, 0x1b, 0x2f, 0xcc, 0xf2, 0xc0, 0x24, 0x27, 0x93, 0x31, 0x06, 0xed,
|
||||
0xac, 0x38, 0x90, 0x92, 0xcc, 0x24, 0xc3, 0x41, 0xc9, 0x5c, 0x18, 0x7c, 0x03, 0x7c, 0x2b, 0x32,
|
||||
0x34, 0x36, 0xcc, 0xc6, 0xeb, 0xcd, 0xab, 0xde, 0xb5, 0x56, 0x50, 0x01, 0xfc, 0x0a, 0xcc, 0x1b,
|
||||
0x95, 0xeb, 0x08, 0x87, 0x83, 0xf5, 0x96, 0x7b, 0x36, 0xb3, 0x37, 0x6f, 0x82, 0x7f, 0x60, 0x92,
|
||||
0x3b, 0x18, 0xc6, 0xa8, 0xf9, 0x2b, 0xd0, 0x3a, 0x0d, 0x4d, 0xa1, 0xa8, 0xf3, 0xff, 0x8a, 0x28,
|
||||
0x83, 0xc0, 0x79, 0x6e, 0x7d, 0xd0, 0x02, 0x7f, 0xd6, 0x09, 0xde, 0x81, 0xf6, 0x28, 0x8f, 0x22,
|
||||
0x34, 0x86, 0x5d, 0xe0, 0xcb, 0xb0, 0x78, 0x5f, 0xe2, 0xb3, 0x31, 0x46, 0x16, 0x63, 0xe7, 0xc3,
|
||||
0x3c, 0xbe, 0x04, 0x0b, 0x7d, 0x25, 0x25, 0x46, 0x76, 0x2f, 0x14, 0x29, 0xc6, 0xac, 0xc1, 0x57,
|
||||
0x80, 0x1d, 0xa3, 0xce, 0x84, 0x31, 0x42, 0xc9, 0x01, 0x4a, 0x81, 0x31, 0x6b, 0xf2, 0x4b, 0xb0,
|
||||
0xdc, 0x57, 0x69, 0x8a, 0x91, 0x15, 0x4a, 0x1e, 0x2a, 0x7b, 0xfb, 0x99, 0x30, 0xd6, 0xb0, 0x16,
|
||||
0xd1, 0x0e, 0xd3, 0x14, 0x93, 0x30, 0xbd, 0xa5, 0x93, 0x3c, 0x43, 0x69, 0xd9, 0x45, 0xe2, 0x28,
|
||||
0xc1, 0x81, 0xc8, 0x50, 0x12, 0x13, 0x6b, 0xd7, 0xd0, 0xa1, 0x8c, 0xf1, 0x19, 0xd5, 0x8f, 0xcd,
|
||||
0xf3, 0xcb, 0xb0, 0x5a, 0xa2, 0xb5, 0x00, 0x61, 0x86, 0xcc, 0xe7, 0x8b, 0xd0, 0x29, 0xaf, 0x4e,
|
||||
0x8e, 0x8e, 0xef, 0x32, 0xa8, 0x31, 0x04, 0xea, 0x69, 0x80, 0x91, 0xd2, 0x31, 0xeb, 0xd4, 0x24,
|
||||
0x3c, 0xc0, 0xc8, 0x2a, 0x3d, 0x1c, 0xb0, 0x2e, 0x09, 0x2e, 0xc1, 0x11, 0x86, 0x3a, 0x3a, 0x0f,
|
||||
0xd0, 0xe4, 0xa9, 0x65, 0x0b, 0x9c, 0x41, 0x77, 0x4f, 0xa4, 0x78, 0xa8, 0xec, 0x9e, 0xca, 0x65,
|
||||
0xcc, 0x7a, 0xbc, 0x07, 0x70, 0x80, 0x36, 0x2c, 0x2b, 0xb0, 0x48, 0x61, 0xfb, 0x61, 0x74, 0x8e,
|
||||
0x25, 0xc0, 0xf8, 0x1a, 0xf0, 0x7e, 0x28, 0xa5, 0xb2, 0x7d, 0x8d, 0xa1, 0xc5, 0x3d, 0x95, 0xc6,
|
||||
0xa8, 0xd9, 0x12, 0xc9, 0xf9, 0x0f, 0x2e, 0x52, 0x64, 0xbc, 0xf2, 0x1e, 0x60, 0x8a, 0x33, 0xef,
|
||||
0xe5, 0xca, 0xbb, 0xc4, 0xc9, 0x7b, 0x85, 0xc4, 0xef, 0xe6, 0x22, 0x8d, 0x5d, 0x49, 0x8a, 0xb6,
|
||||
0xac, 0x92, 0xc6, 0x52, 0xfc, 0xe1, 0xbd, 0xe1, 0xe8, 0x84, 0xad, 0xf1, 0x55, 0x58, 0x2a, 0x91,
|
||||
0x03, 0xb4, 0x5a, 0x44, 0xae, 0x78, 0x97, 0x48, 0xea, 0x51, 0x6e, 0x8f, 0xce, 0x0e, 0x30, 0x53,
|
||||
0x7a, 0xc2, 0xd6, 0xa9, 0xa1, 0x8e, 0x69, 0xda, 0x22, 0x76, 0x99, 0x73, 0x58, 0x18, 0x0c, 0x02,
|
||||
0x7c, 0x27, 0x47, 0x63, 0x83, 0x30, 0x42, 0xf6, 0x4b, 0x7b, 0xeb, 0x21, 0x80, 0x73, 0xa3, 0x35,
|
||||
0x47, 0xce, 0xa1, 0x57, 0x59, 0x87, 0x4a, 0x22, 0xbb, 0xc0, 0xbb, 0x30, 0x7f, 0x5f, 0x0a, 0x63,
|
||||
0x72, 0x8c, 0x99, 0x47, 0x25, 0x1a, 0xca, 0x63, 0xad, 0x12, 0xda, 0x2e, 0xd6, 0xa0, 0xdb, 0x3d,
|
||||
0x21, 0x85, 0x39, 0x77, 0xc3, 0x01, 0x30, 0x57, 0xd6, 0xaa, 0xb5, 0xf5, 0x10, 0xba, 0x23, 0x4c,
|
||||
0x68, 0x0e, 0x0a, 0xee, 0x15, 0x60, 0x75, 0xbb, 0x62, 0x9f, 0x29, 0xf4, 0x68, 0x4e, 0xf7, 0xb5,
|
||||
0x7a, 0x2a, 0x64, 0xc2, 0x1a, 0x44, 0x36, 0xc2, 0x30, 0x75, 0xc4, 0x1d, 0x68, 0xef, 0xa5, 0xb9,
|
||||
0x8b, 0xd2, 0xda, 0x7a, 0x7f, 0xce, 0xed, 0xab, 0x5b, 0xbb, 0x05, 0xf0, 0xef, 0xcb, 0x18, 0xcf,
|
||||
0x84, 0xc4, 0x98, 0x5d, 0x70, 0xa5, 0x75, 0x2d, 0xa8, 0x46, 0x88, 0xc5, 0x94, 0xd6, 0x40, 0xab,
|
||||
0x71, 0x0d, 0x43, 0xaa, 0xcf, 0x9d, 0xd0, 0xd4, 0xa0, 0x33, 0xea, 0xd7, 0x00, 0x4d, 0xa4, 0xc5,
|
||||
0x69, 0xfd, 0x79, 0x42, 0x9d, 0x19, 0x9d, 0xab, 0xa7, 0x15, 0x66, 0xd8, 0x39, 0x45, 0xda, 0x47,
|
||||
0x3b, 0x9a, 0x18, 0x8b, 0x59, 0x5f, 0xc9, 0x33, 0x91, 0x18, 0x26, 0x28, 0xd2, 0x3d, 0x15, 0xc6,
|
||||
0xb5, 0xe7, 0x6f, 0x53, 0xc7, 0x02, 0x4c, 0x31, 0x34, 0x75, 0xd6, 0xc7, 0x7c, 0x05, 0x16, 0x0b,
|
||||
0xa9, 0xc7, 0xa1, 0xb6, 0xc2, 0x81, 0xdf, 0x78, 0xae, 0x47, 0x5a, 0x8d, 0x2b, 0xec, 0x5b, 0xda,
|
||||
0xcd, 0xee, 0x9d, 0xd0, 0x54, 0xd0, 0x77, 0x1e, 0x5f, 0x83, 0xa5, 0xa9, 0xd4, 0x0a, 0xff, 0xde,
|
||||
0xe3, 0xcb, 0xd0, 0x23, 0xa9, 0x33, 0xcc, 0xb0, 0x1f, 0x1c, 0x48, 0xa2, 0x6a, 0xe0, 0x8f, 0x8e,
|
||||
0xa1, 0x54, 0x55, 0xc3, 0x7f, 0x72, 0xc1, 0x88, 0xa1, 0x6c, 0x95, 0x61, 0x7f, 0x7b, 0xa4, 0x74,
|
||||
0x1a, 0xac, 0x84, 0xd9, 0x3f, 0x1e, 0x67, 0xd0, 0x29, 0xf4, 0xbb, 0x89, 0x61, 0x1f, 0x36, 0x9c,
|
||||
0xf6, 0xd2, 0xaf, 0xc0, 0x3e, 0x6a, 0xf0, 0x1e, 0xf8, 0x94, 0x4f, 0x61, 0x7f, 0xdc, 0xe0, 0x1d,
|
||||
0x98, 0x1b, 0x4a, 0x83, 0xda, 0xb2, 0x77, 0xa9, 0xab, 0x73, 0xc5, 0x0a, 0xb0, 0xf7, 0x68, 0x76,
|
||||
0x2e, 0xba, 0x16, 0xb3, 0xe7, 0xee, 0xa2, 0x58, 0x56, 0xf6, 0x6b, 0xd3, 0x29, 0xaa, 0x6f, 0xee,
|
||||
0x6f, 0x4d, 0x8a, 0xb4, 0x8f, 0xb6, 0x1a, 0x55, 0xf6, 0x7b, 0x93, 0x5f, 0x81, 0xd5, 0x29, 0xe6,
|
||||
0xf6, 0x68, 0x36, 0xa4, 0x7f, 0x34, 0xf9, 0x06, 0x5c, 0xda, 0x47, 0x5b, 0x95, 0x9f, 0x1e, 0x09,
|
||||
0x63, 0x45, 0x64, 0xd8, 0x9f, 0x4d, 0xfe, 0x12, 0xac, 0xed, 0xa3, 0x9d, 0x95, 0xa1, 0x76, 0xf9,
|
||||
0x57, 0x93, 0xd2, 0x2c, 0x93, 0x1e, 0xca, 0x33, 0xc5, 0x7e, 0x6e, 0xf1, 0x05, 0x98, 0x3f, 0x11,
|
||||
0x19, 0x9e, 0x88, 0xe8, 0x31, 0xfb, 0xc4, 0xa7, 0xea, 0xbe, 0x99, 0xa3, 0x9e, 0x1c, 0xaa, 0x18,
|
||||
0xe9, 0xa9, 0x61, 0x9f, 0xfa, 0x94, 0x36, 0x95, 0xbc, 0x48, 0xfb, 0x33, 0x67, 0x97, 0x8b, 0x37,
|
||||
0x1c, 0xb0, 0xcf, 0xe9, 0x83, 0x06, 0xa5, 0x7d, 0x32, 0x3a, 0x62, 0x5f, 0xf8, 0x54, 0xe3, 0x5b,
|
||||
0x69, 0xaa, 0xa2, 0xd0, 0xce, 0x6a, 0xfc, 0xa5, 0x4f, 0x4d, 0xaa, 0xed, 0x4c, 0x29, 0xea, 0x2b,
|
||||
0x9f, 0xaf, 0xce, 0x76, 0xc9, 0x95, 0x6c, 0x40, 0xbb, 0xf4, 0xb5, 0xbf, 0xfb, 0xda, 0x5b, 0x37,
|
||||
0x12, 0x61, 0xcf, 0xf3, 0x53, 0xfa, 0x27, 0xec, 0x14, 0x3f, 0x89, 0xeb, 0x42, 0x95, 0xa7, 0x1d,
|
||||
0x21, 0x2d, 0x6a, 0x19, 0xa6, 0x3b, 0xee, 0xbf, 0xb1, 0x53, 0xfc, 0x37, 0xc6, 0xa7, 0xa7, 0x73,
|
||||
0xce, 0xbe, 0xf1, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xbc, 0x04, 0x20, 0x11, 0x08, 0x00,
|
||||
0x00,
|
||||
0x17, 0x36, 0x25, 0x45, 0x32, 0x8f, 0x64, 0x79, 0x3c, 0xbe, 0xc4, 0xc9, 0x6f, 0xfc, 0x08, 0xbc,
|
||||
0x0a, 0x0c, 0xc4, 0x6e, 0x1b, 0xb4, 0x5d, 0x65, 0x11, 0x8b, 0xb1, 0x23, 0x24, 0xbe, 0x54, 0x72,
|
||||
0x82, 0xa0, 0x9b, 0x80, 0x26, 0x8f, 0xe5, 0x69, 0xc8, 0x19, 0x75, 0x66, 0x98, 0x58, 0x6f, 0xd1,
|
||||
0x66, 0xd1, 0x37, 0xe8, 0xae, 0x2d, 0x7a, 0xef, 0x2b, 0xf4, 0xbe, 0xee, 0x23, 0xf4, 0x01, 0x7a,
|
||||
0xef, 0xa6, 0x38, 0x43, 0x4a, 0x64, 0x81, 0x74, 0x37, 0xe7, 0x9b, 0x33, 0xdf, 0xf9, 0xce, 0x8d,
|
||||
0x84, 0x4e, 0xa4, 0xd2, 0x54, 0xc9, 0xed, 0xb1, 0x56, 0x56, 0xf1, 0xe5, 0x54, 0x24, 0x4f, 0x33,
|
||||
0x93, 0x5b, 0xdb, 0xf9, 0xd5, 0xe6, 0x63, 0x68, 0x0e, 0x6d, 0x68, 0x33, 0xc3, 0x6f, 0x01, 0xa0,
|
||||
0xd6, 0x4a, 0x3f, 0x8e, 0x54, 0x8c, 0xeb, 0xde, 0x35, 0xef, 0x7a, 0xf7, 0x95, 0xff, 0x6f, 0xbf,
|
||||
0xe0, 0xcd, 0xf6, 0x1d, 0x72, 0xeb, 0xa9, 0x18, 0x07, 0x3e, 0x4e, 0x8f, 0x7c, 0x0d, 0x9a, 0x1a,
|
||||
0x43, 0xa3, 0xe4, 0x7a, 0xed, 0x9a, 0x77, 0xdd, 0x1f, 0x14, 0xd6, 0xe6, 0x6b, 0xd0, 0xb9, 0x87,
|
||||
0x93, 0x87, 0x61, 0x92, 0xe1, 0x71, 0x28, 0x34, 0x67, 0x50, 0x7f, 0x82, 0x13, 0xc7, 0xef, 0x0f,
|
||||
0xe8, 0xc8, 0x57, 0xe0, 0xd2, 0x53, 0xba, 0x2e, 0x1e, 0xe6, 0xc6, 0xe6, 0x06, 0x34, 0x76, 0x13,
|
||||
0x75, 0x5a, 0xde, 0xd2, 0x8b, 0xce, 0xf4, 0xf6, 0x06, 0xb4, 0x6e, 0xc7, 0xb1, 0x46, 0x63, 0x78,
|
||||
0x17, 0x6a, 0x62, 0x5c, 0xf0, 0xd5, 0xc4, 0x98, 0x73, 0x68, 0x8c, 0x95, 0xb6, 0x8e, 0xad, 0x3e,
|
||||
0x70, 0xe7, 0xcd, 0xe7, 0x1e, 0xb4, 0x0e, 0xcc, 0x68, 0x37, 0x34, 0xc8, 0x5f, 0x87, 0xf9, 0xd4,
|
||||
0x8c, 0x1e, 0xdb, 0xc9, 0x78, 0x9a, 0xe5, 0xc6, 0x0b, 0xb3, 0x3c, 0x30, 0xa3, 0x93, 0xc9, 0x18,
|
||||
0x07, 0xad, 0x34, 0x3f, 0x90, 0x92, 0xd4, 0x8c, 0xfa, 0x41, 0xc1, 0x9c, 0x1b, 0x7c, 0x03, 0x7c,
|
||||
0x2b, 0x52, 0x34, 0x36, 0x4c, 0xc7, 0xeb, 0xf5, 0x6b, 0xde, 0xf5, 0xc6, 0xa0, 0x04, 0xf8, 0x55,
|
||||
0x98, 0x37, 0x2a, 0xd3, 0x11, 0xf6, 0x83, 0xf5, 0x86, 0x7b, 0x36, 0xb3, 0x37, 0x6f, 0x81, 0x7f,
|
||||
0x60, 0x46, 0x77, 0x31, 0x8c, 0x51, 0xf3, 0x97, 0xa0, 0x71, 0x1a, 0x9a, 0x5c, 0x51, 0xfb, 0xbf,
|
||||
0x15, 0x51, 0x06, 0x03, 0xe7, 0xb9, 0xf5, 0x7e, 0x03, 0xfc, 0x59, 0x27, 0x78, 0x1b, 0x5a, 0xc3,
|
||||
0x2c, 0x8a, 0xd0, 0x18, 0x36, 0xc7, 0x97, 0x61, 0xf1, 0x81, 0xc4, 0x8b, 0x31, 0x46, 0x16, 0x63,
|
||||
0xe7, 0xc3, 0x3c, 0xbe, 0x04, 0x0b, 0x3d, 0x25, 0x25, 0x46, 0x76, 0x2f, 0x14, 0x09, 0xc6, 0xac,
|
||||
0xc6, 0x57, 0x80, 0x1d, 0xa3, 0x4e, 0x85, 0x31, 0x42, 0xc9, 0x00, 0xa5, 0xc0, 0x98, 0xd5, 0xf9,
|
||||
0x65, 0x58, 0xee, 0xa9, 0x24, 0xc1, 0xc8, 0x0a, 0x25, 0x0f, 0x95, 0xbd, 0x73, 0x21, 0x8c, 0x35,
|
||||
0xac, 0x41, 0xb4, 0xfd, 0x24, 0xc1, 0x51, 0x98, 0xdc, 0xd6, 0xa3, 0x2c, 0x45, 0x69, 0xd9, 0x25,
|
||||
0xe2, 0x28, 0xc0, 0x40, 0xa4, 0x28, 0x89, 0x89, 0xb5, 0x2a, 0x68, 0x5f, 0xc6, 0x78, 0x41, 0xf5,
|
||||
0x63, 0xf3, 0xfc, 0x0a, 0xac, 0x16, 0x68, 0x25, 0x40, 0x98, 0x22, 0xf3, 0xf9, 0x22, 0xb4, 0x8b,
|
||||
0xab, 0x93, 0xa3, 0xe3, 0x7b, 0x0c, 0x2a, 0x0c, 0x03, 0xf5, 0x6c, 0x80, 0x91, 0xd2, 0x31, 0x6b,
|
||||
0x57, 0x24, 0x3c, 0xc4, 0xc8, 0x2a, 0xdd, 0x0f, 0x58, 0x87, 0x04, 0x17, 0xe0, 0x10, 0x43, 0x1d,
|
||||
0x9d, 0x0f, 0xd0, 0x64, 0x89, 0x65, 0x0b, 0x9c, 0x41, 0x67, 0x4f, 0x24, 0x78, 0xa8, 0xec, 0x9e,
|
||||
0xca, 0x64, 0xcc, 0xba, 0xbc, 0x0b, 0x70, 0x80, 0x36, 0x2c, 0x2a, 0xb0, 0x48, 0x61, 0x7b, 0x61,
|
||||
0x74, 0x8e, 0x05, 0xc0, 0xf8, 0x1a, 0xf0, 0x5e, 0x28, 0xa5, 0xb2, 0x3d, 0x8d, 0xa1, 0xc5, 0x3d,
|
||||
0x95, 0xc4, 0xa8, 0xd9, 0x12, 0xc9, 0xf9, 0x17, 0x2e, 0x12, 0x64, 0xbc, 0xf4, 0x0e, 0x30, 0xc1,
|
||||
0x99, 0xf7, 0x72, 0xe9, 0x5d, 0xe0, 0xe4, 0xbd, 0x42, 0xe2, 0x77, 0x33, 0x91, 0xc4, 0xae, 0x24,
|
||||
0x79, 0x5b, 0x56, 0x49, 0x63, 0x21, 0xfe, 0xf0, 0x7e, 0x7f, 0x78, 0xc2, 0xd6, 0xf8, 0x2a, 0x2c,
|
||||
0x15, 0xc8, 0x01, 0x5a, 0x2d, 0x22, 0x57, 0xbc, 0xcb, 0x24, 0xf5, 0x28, 0xb3, 0x47, 0x67, 0x07,
|
||||
0x98, 0x2a, 0x3d, 0x61, 0xeb, 0xd4, 0x50, 0xc7, 0x34, 0x6d, 0x11, 0xbb, 0xc2, 0x39, 0x2c, 0x04,
|
||||
0xc1, 0x00, 0xdf, 0xce, 0xd0, 0xd8, 0x41, 0x18, 0x21, 0xfb, 0xb9, 0xb5, 0xf5, 0x08, 0xc0, 0xb9,
|
||||
0xd1, 0x9a, 0x23, 0xe7, 0xd0, 0x2d, 0xad, 0x43, 0x25, 0x91, 0xcd, 0xf1, 0x0e, 0xcc, 0x3f, 0x90,
|
||||
0xc2, 0x98, 0x0c, 0x63, 0xe6, 0x51, 0x89, 0xfa, 0xf2, 0x58, 0xab, 0x11, 0x6d, 0x17, 0xab, 0xd1,
|
||||
0xed, 0x9e, 0x90, 0xc2, 0x9c, 0xbb, 0xe1, 0x00, 0x68, 0x16, 0xb5, 0x6a, 0x6c, 0x3d, 0x82, 0xce,
|
||||
0x10, 0x47, 0x34, 0x07, 0x39, 0xf7, 0x0a, 0xb0, 0xaa, 0x5d, 0xb2, 0xcf, 0x14, 0x7a, 0x34, 0xa7,
|
||||
0xfb, 0x5a, 0x3d, 0x13, 0x72, 0xc4, 0x6a, 0x44, 0x36, 0xc4, 0x30, 0x71, 0xc4, 0x6d, 0x68, 0xed,
|
||||
0x25, 0x99, 0x8b, 0xd2, 0xd8, 0x7a, 0xaf, 0xe9, 0xf6, 0xd5, 0xad, 0xdd, 0x02, 0xf8, 0x0f, 0x64,
|
||||
0x8c, 0x67, 0x42, 0x62, 0xcc, 0xe6, 0x5c, 0x69, 0x5d, 0x0b, 0xca, 0x11, 0x62, 0x31, 0xa5, 0x15,
|
||||
0x68, 0x35, 0xae, 0x60, 0x48, 0xf5, 0xb9, 0x1b, 0x9a, 0x0a, 0x74, 0x46, 0xfd, 0x0a, 0xd0, 0x44,
|
||||
0x5a, 0x9c, 0x56, 0x9f, 0x8f, 0xa8, 0x33, 0xc3, 0x73, 0xf5, 0xac, 0xc4, 0x0c, 0x3b, 0xa7, 0x48,
|
||||
0xfb, 0x68, 0x87, 0x13, 0x63, 0x31, 0xed, 0x29, 0x79, 0x26, 0x46, 0x86, 0x09, 0x8a, 0x74, 0x5f,
|
||||
0x85, 0x71, 0xe5, 0xf9, 0x5b, 0xd4, 0xb1, 0x01, 0x26, 0x18, 0x9a, 0x2a, 0xeb, 0x13, 0xbe, 0x02,
|
||||
0x8b, 0xb9, 0xd4, 0xe3, 0x50, 0x5b, 0xe1, 0xc0, 0xaf, 0x3d, 0xd7, 0x23, 0xad, 0xc6, 0x25, 0xf6,
|
||||
0x0d, 0xed, 0x66, 0xe7, 0x6e, 0x68, 0x4a, 0xe8, 0x5b, 0x8f, 0xaf, 0xc1, 0xd2, 0x54, 0x6a, 0x89,
|
||||
0x7f, 0xe7, 0xf1, 0x65, 0xe8, 0x92, 0xd4, 0x19, 0x66, 0xd8, 0xf7, 0x0e, 0x24, 0x51, 0x15, 0xf0,
|
||||
0x07, 0xc7, 0x50, 0xa8, 0xaa, 0xe0, 0x3f, 0xba, 0x60, 0xc4, 0x50, 0xb4, 0xca, 0xb0, 0xbf, 0x3c,
|
||||
0x52, 0x3a, 0x0d, 0x56, 0xc0, 0xec, 0x6f, 0x8f, 0x33, 0x68, 0xe7, 0xfa, 0xdd, 0xc4, 0xb0, 0x0f,
|
||||
0x6a, 0x4e, 0x7b, 0xe1, 0x97, 0x63, 0x1f, 0xd6, 0x78, 0x17, 0x7c, 0xca, 0x27, 0xb7, 0x3f, 0xaa,
|
||||
0xf1, 0x36, 0x34, 0xfb, 0xd2, 0xa0, 0xb6, 0xec, 0x1d, 0xea, 0x6a, 0x33, 0x5f, 0x01, 0xf6, 0x2e,
|
||||
0xcd, 0xce, 0x25, 0xd7, 0x62, 0xf6, 0xdc, 0x5d, 0xe4, 0xcb, 0xca, 0x7e, 0xa9, 0x3b, 0x45, 0xd5,
|
||||
0xcd, 0xfd, 0xb5, 0x4e, 0x91, 0xf6, 0xd1, 0x96, 0xa3, 0xca, 0x7e, 0xab, 0xf3, 0xab, 0xb0, 0x3a,
|
||||
0xc5, 0xdc, 0x1e, 0xcd, 0x86, 0xf4, 0xf7, 0x3a, 0xdf, 0x80, 0xcb, 0xfb, 0x68, 0xcb, 0xf2, 0xd3,
|
||||
0x23, 0x61, 0xac, 0x88, 0x0c, 0xfb, 0xa3, 0xce, 0xff, 0x07, 0x6b, 0xfb, 0x68, 0x67, 0x65, 0xa8,
|
||||
0x5c, 0xfe, 0x59, 0xa7, 0x34, 0x8b, 0xa4, 0xfb, 0xf2, 0x4c, 0xb1, 0x9f, 0x1a, 0x7c, 0x01, 0xe6,
|
||||
0x4f, 0x44, 0x8a, 0x27, 0x22, 0x7a, 0xc2, 0x3e, 0xf6, 0xa9, 0xba, 0x6f, 0x64, 0xa8, 0x27, 0x87,
|
||||
0x2a, 0x46, 0x7a, 0x6a, 0xd8, 0x27, 0x3e, 0xa5, 0x4d, 0x25, 0xcf, 0xd3, 0xfe, 0xd4, 0xd9, 0xc5,
|
||||
0xe2, 0xf5, 0x03, 0xf6, 0x19, 0x7d, 0xd0, 0xa0, 0xb0, 0x4f, 0x86, 0x47, 0xec, 0x73, 0x9f, 0x6a,
|
||||
0x7c, 0x3b, 0x49, 0x54, 0x14, 0xda, 0x59, 0x8d, 0xbf, 0xf0, 0xa9, 0x49, 0x95, 0x9d, 0x29, 0x44,
|
||||
0x7d, 0xe9, 0xf3, 0xd5, 0xd9, 0x2e, 0xb9, 0x92, 0x05, 0xb4, 0x4b, 0x5f, 0xf9, 0x5b, 0x9b, 0xd0,
|
||||
0x0a, 0x4c, 0xe2, 0xf6, 0xa2, 0x05, 0xf5, 0xc0, 0x24, 0x6c, 0x8e, 0x16, 0x76, 0x57, 0xa9, 0xe4,
|
||||
0xce, 0xc5, 0x58, 0x3f, 0x7c, 0x99, 0x79, 0xbb, 0xaf, 0xbe, 0x79, 0x73, 0x24, 0xec, 0x79, 0x76,
|
||||
0x4a, 0xff, 0x8d, 0x9d, 0xfc, 0x47, 0x72, 0x43, 0xa8, 0xe2, 0xb4, 0x23, 0xa4, 0x45, 0x2d, 0xc3,
|
||||
0x64, 0xc7, 0xfd, 0x5b, 0x76, 0xf2, 0x7f, 0xcb, 0xf8, 0xf4, 0xb4, 0xe9, 0xec, 0x9b, 0xff, 0x04,
|
||||
0x00, 0x00, 0xff, 0xff, 0x2d, 0x7f, 0xd4, 0x22, 0x35, 0x08, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -304,6 +304,8 @@ message SearchRequest {
|
|||
string dsl = 5;
|
||||
// serialized `PlaceholderGroup`
|
||||
bytes placeholder_group = 6;
|
||||
common.DslType dsl_type = 7;
|
||||
repeated common.KeyValuePair search_params = 8;
|
||||
}
|
||||
|
||||
message Hits {
|
||||
|
|
|
@ -2312,10 +2312,12 @@ type SearchRequest struct {
|
|||
PartitionNames []string `protobuf:"bytes,4,rep,name=partition_names,json=partitionNames,proto3" json:"partition_names,omitempty"`
|
||||
Dsl string `protobuf:"bytes,5,opt,name=dsl,proto3" json:"dsl,omitempty"`
|
||||
// serialized `PlaceholderGroup`
|
||||
PlaceholderGroup []byte `protobuf:"bytes,6,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
PlaceholderGroup []byte `protobuf:"bytes,6,opt,name=placeholder_group,json=placeholderGroup,proto3" json:"placeholder_group,omitempty"`
|
||||
DslType commonpb.DslType `protobuf:"varint,7,opt,name=dsl_type,json=dslType,proto3,enum=milvus.proto.common.DslType" json:"dsl_type,omitempty"`
|
||||
SearchParams []*commonpb.KeyValuePair `protobuf:"bytes,8,rep,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *SearchRequest) Reset() { *m = SearchRequest{} }
|
||||
|
@ -2385,6 +2387,20 @@ func (m *SearchRequest) GetPlaceholderGroup() []byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (m *SearchRequest) GetDslType() commonpb.DslType {
|
||||
if m != nil {
|
||||
return m.DslType
|
||||
}
|
||||
return commonpb.DslType_Dsl
|
||||
}
|
||||
|
||||
func (m *SearchRequest) GetSearchParams() []*commonpb.KeyValuePair {
|
||||
if m != nil {
|
||||
return m.SearchParams
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Hits struct {
|
||||
IDs []int64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"`
|
||||
RowData [][]byte `protobuf:"bytes,2,rep,name=row_data,json=rowData,proto3" json:"row_data,omitempty"`
|
||||
|
@ -3072,135 +3088,138 @@ func init() {
|
|||
func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) }
|
||||
|
||||
var fileDescriptor_02345ba45cc0e303 = []byte{
|
||||
// 2042 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xdd, 0x6f, 0x1b, 0xc7,
|
||||
0x11, 0xf7, 0x92, 0x14, 0x45, 0x0d, 0x8f, 0x12, 0xbd, 0xfa, 0x30, 0x75, 0xb6, 0x63, 0xe9, 0x5a,
|
||||
0x37, 0xb2, 0x9d, 0x58, 0xa9, 0x14, 0xf7, 0x03, 0x45, 0x8b, 0x56, 0x51, 0x23, 0x0b, 0x4e, 0x02,
|
||||
0xe5, 0xe8, 0x06, 0x4d, 0x03, 0x83, 0x38, 0x92, 0x6b, 0xf2, 0xe0, 0xe3, 0x1d, 0x7b, 0x7b, 0xb4,
|
||||
0x4c, 0x3f, 0x15, 0x48, 0x51, 0xa0, 0x5f, 0x4e, 0x81, 0x16, 0x05, 0xda, 0xc7, 0x02, 0x79, 0x6e,
|
||||
0x8b, 0x06, 0x28, 0xd0, 0xe7, 0x3e, 0x14, 0xe8, 0x4b, 0xff, 0x89, 0x3e, 0x15, 0xfd, 0x13, 0x0a,
|
||||
0x14, 0xfb, 0xc1, 0xe3, 0xdd, 0x71, 0x8f, 0xa2, 0xcc, 0xd8, 0xa2, 0xde, 0xb8, 0x73, 0xb3, 0xb3,
|
||||
0xbf, 0x9d, 0x9d, 0x99, 0x9d, 0x9d, 0x21, 0x68, 0x1d, 0xdb, 0x79, 0xdc, 0xa3, 0xb7, 0xbb, 0xbe,
|
||||
0x17, 0x78, 0x78, 0x39, 0x3a, 0xba, 0x2d, 0x06, 0xba, 0xd6, 0xf0, 0x3a, 0x1d, 0xcf, 0x15, 0x44,
|
||||
0x5d, 0xa3, 0x8d, 0x36, 0xe9, 0x58, 0x62, 0x64, 0x7c, 0x8a, 0xe0, 0xd2, 0x5b, 0x3e, 0xb1, 0x02,
|
||||
0xf2, 0x96, 0xe7, 0x38, 0xa4, 0x11, 0xd8, 0x9e, 0x6b, 0x92, 0x1f, 0xf6, 0x08, 0x0d, 0xf0, 0x1b,
|
||||
0x90, 0xab, 0x5b, 0x94, 0x54, 0xd0, 0x06, 0xda, 0x2a, 0xee, 0x5c, 0xb9, 0x1d, 0x93, 0x2d, 0x65,
|
||||
0xbe, 0x4b, 0x5b, 0x7b, 0x16, 0x25, 0x26, 0xe7, 0xc4, 0x97, 0x60, 0xbe, 0x59, 0xaf, 0xb9, 0x56,
|
||||
0x87, 0x54, 0x32, 0x1b, 0x68, 0x6b, 0xc1, 0xcc, 0x37, 0xeb, 0xef, 0x59, 0x1d, 0x82, 0x5f, 0x85,
|
||||
0xa5, 0x46, 0x28, 0x5f, 0x30, 0x64, 0x39, 0xc3, 0xe2, 0x90, 0xcc, 0x19, 0xd7, 0x20, 0x2f, 0xf0,
|
||||
0x55, 0x72, 0x1b, 0x68, 0x4b, 0x33, 0xe5, 0xc8, 0xf8, 0x39, 0x82, 0xd5, 0x7d, 0xdf, 0xeb, 0xce,
|
||||
0x04, 0x4a, 0xe3, 0x67, 0x08, 0x56, 0xee, 0x5a, 0x74, 0x36, 0xc0, 0x7c, 0x08, 0xda, 0x9e, 0xe7,
|
||||
0x39, 0x26, 0xa1, 0x5d, 0xcf, 0xa5, 0x04, 0xef, 0x42, 0x9e, 0x06, 0x56, 0xd0, 0xa3, 0x12, 0xc5,
|
||||
0x65, 0x25, 0x8a, 0x2a, 0x67, 0x31, 0x25, 0x2b, 0x5e, 0x81, 0xb9, 0xc7, 0x96, 0xd3, 0x13, 0x20,
|
||||
0x0a, 0xa6, 0x18, 0x18, 0x1f, 0xc1, 0x62, 0x35, 0xf0, 0x6d, 0xb7, 0xf5, 0x39, 0x0a, 0x5f, 0x18,
|
||||
0x08, 0xff, 0x0b, 0x82, 0xf5, 0x7d, 0x42, 0x1b, 0xbe, 0x5d, 0x9f, 0x11, 0xe3, 0x33, 0x40, 0x1b,
|
||||
0x52, 0x0e, 0xf7, 0xb9, 0x09, 0x66, 0xcd, 0x18, 0xcd, 0xf8, 0x0c, 0x81, 0xae, 0x42, 0x3d, 0x8d,
|
||||
0x7e, 0xbe, 0x19, 0x1a, 0x7d, 0x86, 0x4f, 0xba, 0x1e, 0x9f, 0x24, 0x1d, 0x76, 0xb8, 0x5a, 0x95,
|
||||
0x13, 0x06, 0xbe, 0x31, 0x02, 0x3b, 0xab, 0x80, 0xcd, 0xfc, 0xe7, 0x1d, 0xcf, 0x6a, 0xce, 0x86,
|
||||
0xc9, 0x3e, 0x43, 0x50, 0x31, 0x89, 0x43, 0x2c, 0x3a, 0x1b, 0x27, 0x6f, 0xfc, 0x06, 0xc1, 0x2b,
|
||||
0x07, 0x24, 0x88, 0xa8, 0x38, 0xb0, 0x02, 0x9b, 0x06, 0x76, 0x83, 0x9e, 0x25, 0xac, 0x4f, 0x10,
|
||||
0x5c, 0x4b, 0x85, 0x35, 0x8d, 0xc5, 0x7d, 0x15, 0xe6, 0xd8, 0x2f, 0x5a, 0xc9, 0x6c, 0x64, 0xb7,
|
||||
0x8a, 0x3b, 0x9b, 0xca, 0x39, 0xf7, 0x48, 0xff, 0x03, 0xe6, 0xa9, 0x47, 0x96, 0xed, 0x9b, 0x82,
|
||||
0xdf, 0x68, 0xc0, 0x5a, 0xb5, 0xed, 0x1d, 0x0f, 0x11, 0xbd, 0x00, 0xfd, 0x18, 0x7d, 0xb8, 0x34,
|
||||
0xb2, 0xc8, 0x34, 0xbb, 0xbd, 0x01, 0xe5, 0x84, 0xbe, 0xc5, 0xc6, 0x17, 0xcc, 0xa5, 0xb8, 0xc2,
|
||||
0x29, 0x0b, 0x4a, 0x6b, 0xe2, 0x3e, 0x3c, 0xb2, 0xfc, 0xc0, 0x3e, 0xeb, 0x88, 0x74, 0x1d, 0x16,
|
||||
0xbb, 0x03, 0x1c, 0x82, 0x2f, 0xc7, 0xf9, 0x4a, 0x21, 0x95, 0x2b, 0xec, 0xcf, 0x08, 0x56, 0xd8,
|
||||
0xed, 0x78, 0x9e, 0x30, 0xff, 0x09, 0xc1, 0xf2, 0x5d, 0x8b, 0x9e, 0x27, 0xc8, 0x9f, 0xc9, 0x20,
|
||||
0x1a, 0x62, 0x3e, 0xcb, 0xe0, 0xc0, 0x18, 0xe3, 0xa0, 0x69, 0x25, 0xc7, 0x8d, 0x7a, 0x31, 0x86,
|
||||
0x9a, 0x1a, 0x7f, 0x1d, 0x46, 0xdb, 0x73, 0x86, 0xfc, 0x6f, 0x08, 0xae, 0x1e, 0x90, 0x20, 0x44,
|
||||
0x3d, 0x13, 0x51, 0x79, 0x52, 0x6b, 0x79, 0x26, 0xee, 0x14, 0x25, 0xf8, 0x33, 0x89, 0xdd, 0x7f,
|
||||
0x44, 0xb0, 0xca, 0xe2, 0xea, 0x6c, 0x18, 0xc1, 0x24, 0xc9, 0xd6, 0xef, 0x91, 0xb8, 0x6e, 0xa2,
|
||||
0x88, 0xa7, 0x51, 0x9d, 0xc2, 0xf0, 0x32, 0x2a, 0xc3, 0x63, 0xe0, 0x42, 0xca, 0xe1, 0x3e, 0xad,
|
||||
0x64, 0x37, 0xb2, 0x0c, 0x5c, 0x94, 0x66, 0xfc, 0x02, 0xc1, 0xda, 0x20, 0x13, 0xac, 0x92, 0x56,
|
||||
0x87, 0xb8, 0xc1, 0xf3, 0xeb, 0x33, 0xa9, 0x8d, 0xcc, 0xa8, 0x36, 0xf0, 0x15, 0x58, 0xa0, 0x62,
|
||||
0x9d, 0x30, 0xc9, 0x1b, 0x12, 0xf8, 0x4b, 0x6e, 0x04, 0xce, 0x34, 0xca, 0xaa, 0xc0, 0xbc, 0xed,
|
||||
0x36, 0xc9, 0x93, 0x10, 0xcd, 0x60, 0xc8, 0xbe, 0xd4, 0x7b, 0xb6, 0xd3, 0x0c, 0x61, 0x0c, 0x86,
|
||||
0x78, 0x13, 0x34, 0xe2, 0x5a, 0x75, 0x87, 0xd4, 0x38, 0x2f, 0x3f, 0xd4, 0x82, 0x59, 0x14, 0xb4,
|
||||
0x43, 0x46, 0x32, 0x7e, 0x89, 0x60, 0x99, 0x9d, 0xa9, 0xc4, 0x48, 0x5f, 0xac, 0xce, 0x36, 0xa0,
|
||||
0x18, 0x39, 0x34, 0x09, 0x37, 0x4a, 0x32, 0x1e, 0xc1, 0x4a, 0x1c, 0xce, 0x34, 0x3a, 0x7b, 0x05,
|
||||
0x20, 0x3c, 0x11, 0x61, 0x5b, 0x59, 0x33, 0x42, 0x31, 0xfe, 0x8b, 0x00, 0x8b, 0xf4, 0x82, 0x2b,
|
||||
0xe3, 0x2c, 0xfd, 0xef, 0x2a, 0xc0, 0x43, 0x9b, 0x38, 0xcd, 0x68, 0x04, 0x5b, 0xe0, 0x14, 0xfe,
|
||||
0x79, 0x1f, 0x34, 0xf2, 0x24, 0xf0, 0xad, 0x5a, 0xd7, 0xf2, 0xad, 0x0e, 0xad, 0xcc, 0x4d, 0x1a,
|
||||
0x6c, 0x8a, 0x7c, 0xda, 0x11, 0x9f, 0x65, 0xfc, 0x83, 0x25, 0x26, 0xd2, 0x28, 0x67, 0x7d, 0xc7,
|
||||
0x57, 0x01, 0xb8, 0xd1, 0x8a, 0xcf, 0x73, 0xe2, 0x33, 0xa7, 0xf0, 0x70, 0xfe, 0x29, 0x82, 0x32,
|
||||
0xdf, 0x82, 0xd8, 0x4f, 0x97, 0x89, 0x4d, 0xcc, 0x41, 0x89, 0x39, 0x63, 0x5c, 0xe8, 0xeb, 0x90,
|
||||
0x97, 0x8a, 0xcd, 0x4e, 0xaa, 0x58, 0x39, 0xe1, 0x84, 0x6d, 0x18, 0x7f, 0x40, 0xb0, 0x9a, 0x50,
|
||||
0xf9, 0x34, 0x16, 0x7d, 0x1f, 0xb0, 0xd8, 0x61, 0x73, 0xb8, 0xed, 0xc1, 0xd5, 0x93, 0x78, 0xa7,
|
||||
0xca, 0x41, 0x52, 0x49, 0xe6, 0x45, 0x3b, 0x41, 0xa1, 0xc6, 0xbf, 0x10, 0x5c, 0x39, 0x20, 0x01,
|
||||
0x67, 0xdd, 0x63, 0xb1, 0xe3, 0xc8, 0xf7, 0x5a, 0x3e, 0xa1, 0xf4, 0xfc, 0xda, 0xc7, 0x6f, 0x45,
|
||||
0xae, 0xa2, 0xda, 0xd2, 0x34, 0xfa, 0xdf, 0x04, 0x8d, 0xaf, 0x41, 0x9a, 0x35, 0xdf, 0x3b, 0xa6,
|
||||
0xd2, 0x8e, 0x8a, 0x92, 0x66, 0x7a, 0xc7, 0xdc, 0x20, 0x02, 0x2f, 0xb0, 0x1c, 0xc1, 0x20, 0x2f,
|
||||
0x06, 0x4e, 0x61, 0x9f, 0xb9, 0x0f, 0x0e, 0x80, 0x31, 0xe1, 0xe4, 0xfc, 0xea, 0xf8, 0x63, 0x04,
|
||||
0xab, 0x89, 0xad, 0x4c, 0xa3, 0xdb, 0x3b, 0x22, 0x93, 0x12, 0x9b, 0x59, 0xdc, 0xb9, 0xa6, 0x9c,
|
||||
0x13, 0x59, 0x4c, 0x70, 0x1b, 0x7f, 0x47, 0x50, 0x66, 0xaf, 0xad, 0x73, 0x1e, 0xd0, 0xfe, 0x87,
|
||||
0xa0, 0x74, 0xe8, 0x52, 0xe2, 0x07, 0xb3, 0x9f, 0x4c, 0xe3, 0x37, 0xa1, 0xe0, 0x7b, 0xc7, 0xb5,
|
||||
0xa6, 0x15, 0x58, 0xf2, 0x2a, 0x5a, 0x57, 0xc2, 0xdb, 0x73, 0xbc, 0xba, 0x39, 0xef, 0x7b, 0xc7,
|
||||
0xfb, 0x56, 0x60, 0xe1, 0xcb, 0xb0, 0xd0, 0xb6, 0x68, 0xbb, 0xf6, 0x88, 0xf4, 0x69, 0x25, 0xbf,
|
||||
0x91, 0xdd, 0x2a, 0x99, 0x05, 0x46, 0xb8, 0x47, 0xfa, 0x94, 0x19, 0xd3, 0xe2, 0x60, 0xff, 0xd3,
|
||||
0x58, 0xd1, 0x35, 0x28, 0xfa, 0xde, 0xf1, 0xe1, 0x7e, 0xad, 0x4e, 0x5a, 0xb6, 0x2b, 0x1d, 0x14,
|
||||
0x38, 0x69, 0x8f, 0x51, 0x18, 0x0a, 0xc1, 0x40, 0xdc, 0xa6, 0x74, 0xcf, 0x02, 0x27, 0x7c, 0xd7,
|
||||
0x6d, 0x1a, 0x8f, 0xa1, 0x7c, 0xe4, 0x58, 0x0d, 0xd2, 0xf6, 0x9c, 0x26, 0xf1, 0x79, 0xb4, 0xc7,
|
||||
0x65, 0xc8, 0x06, 0x56, 0x4b, 0x5e, 0x27, 0xec, 0x27, 0xfe, 0x1a, 0xe4, 0x82, 0x7e, 0x77, 0x60,
|
||||
0xa8, 0x5f, 0x54, 0xc6, 0xdd, 0x88, 0x98, 0xfb, 0xfd, 0x2e, 0x31, 0xf9, 0x0c, 0xbc, 0x06, 0x79,
|
||||
0x5e, 0x6e, 0x15, 0x17, 0x8d, 0x66, 0xca, 0x91, 0xf1, 0x20, 0xb6, 0xee, 0x81, 0xef, 0xf5, 0xba,
|
||||
0xf8, 0x10, 0xb4, 0xee, 0x90, 0xc6, 0x94, 0x90, 0x1e, 0xe5, 0x93, 0xa0, 0xcd, 0xd8, 0x54, 0xe3,
|
||||
0x3f, 0x08, 0x4a, 0x55, 0x62, 0xf9, 0x8d, 0xf6, 0x79, 0x78, 0x68, 0x32, 0x8d, 0x37, 0xa9, 0x23,
|
||||
0x7d, 0x84, 0xfd, 0xc4, 0xb7, 0xe0, 0x62, 0x64, 0x43, 0xb5, 0x16, 0x53, 0x50, 0x25, 0xcf, 0x7b,
|
||||
0x12, 0xe5, 0x6e, 0x42, 0x71, 0xc6, 0x3d, 0xc8, 0xdd, 0xb5, 0x03, 0x2e, 0x86, 0xe5, 0x7d, 0x88,
|
||||
0xe7, 0x7d, 0xec, 0x27, 0x5e, 0x8f, 0xd8, 0x6d, 0x86, 0x1f, 0x40, 0x68, 0x9c, 0xbc, 0xd5, 0xe1,
|
||||
0xf9, 0xf2, 0x64, 0x32, 0xa6, 0x1c, 0x19, 0xdf, 0x1f, 0x6a, 0x8e, 0xf6, 0x9c, 0x80, 0x3e, 0x9f,
|
||||
0x55, 0x62, 0xc8, 0xb5, 0x6d, 0xf9, 0x48, 0xd4, 0x4c, 0xfe, 0xdb, 0xf8, 0x31, 0x02, 0xed, 0x6d,
|
||||
0xa7, 0x47, 0x5f, 0xc4, 0x99, 0xa8, 0x6a, 0x6c, 0x59, 0x75, 0x8d, 0xed, 0x9f, 0x19, 0x58, 0x3d,
|
||||
0x22, 0x3e, 0xb5, 0x69, 0x40, 0xdc, 0x40, 0x26, 0xde, 0x87, 0xee, 0x43, 0x2f, 0xfe, 0xc2, 0x41,
|
||||
0x89, 0x17, 0xce, 0xe7, 0x93, 0xef, 0x33, 0x6f, 0xf4, 0xba, 0xc4, 0xad, 0x05, 0xb6, 0x8c, 0x35,
|
||||
0x39, 0xb3, 0xc0, 0x08, 0xf7, 0xed, 0x0e, 0x61, 0xbe, 0x4c, 0x89, 0xe5, 0x90, 0xa6, 0xf8, 0x3c,
|
||||
0xc7, 0x3f, 0x83, 0x20, 0x71, 0x86, 0x4d, 0xd0, 0x1e, 0x32, 0x0d, 0x0e, 0x38, 0xf2, 0x9c, 0xa3,
|
||||
0x28, 0x69, 0x9c, 0x65, 0x1d, 0x0a, 0x6e, 0xaf, 0x23, 0x2e, 0xe3, 0x79, 0x91, 0xf5, 0xb9, 0xbd,
|
||||
0x0e, 0xbf, 0xa9, 0xd7, 0xa1, 0xd0, 0x21, 0x9d, 0x1a, 0xb5, 0x9f, 0x92, 0x4a, 0x41, 0x7c, 0xea,
|
||||
0x90, 0x4e, 0xd5, 0x7e, 0x4a, 0x06, 0xaf, 0x7a, 0x52, 0x59, 0xe0, 0x2e, 0xae, 0xce, 0x07, 0xa5,
|
||||
0xae, 0x62, 0xb7, 0xd1, 0xaf, 0x45, 0x8d, 0x58, 0xa9, 0xd0, 0xe7, 0x3f, 0xe7, 0x35, 0x90, 0x07,
|
||||
0x9b, 0x38, 0xe6, 0x2f, 0x41, 0xc2, 0xc7, 0x52, 0x2a, 0xd7, 0xbf, 0x43, 0xb0, 0x91, 0x8e, 0x6a,
|
||||
0x9a, 0x70, 0xfb, 0x6d, 0x98, 0xb3, 0xdd, 0x87, 0xde, 0x20, 0x07, 0xbd, 0xa9, 0x8e, 0x4e, 0xca,
|
||||
0x75, 0xc5, 0x44, 0xe3, 0xdf, 0x08, 0xca, 0xef, 0xf7, 0x88, 0xdf, 0x7f, 0xd9, 0xa6, 0x17, 0x3d,
|
||||
0xfe, 0x5c, 0xfc, 0xf8, 0xa3, 0x46, 0x33, 0x17, 0x37, 0x9a, 0xf8, 0x35, 0x9e, 0x1f, 0xf3, 0xc6,
|
||||
0x98, 0x8f, 0xbd, 0x31, 0x8c, 0x67, 0x08, 0xf4, 0x03, 0x12, 0x24, 0xb7, 0x7a, 0x76, 0x46, 0xf1,
|
||||
0x09, 0x82, 0xcb, 0x4a, 0x40, 0xd3, 0xd8, 0xc3, 0x37, 0xe2, 0xf6, 0xa0, 0xbe, 0xad, 0x46, 0x96,
|
||||
0x94, 0xa6, 0xb0, 0x0a, 0xcb, 0x26, 0x69, 0x31, 0x4b, 0xf1, 0xdf, 0xb1, 0xdd, 0x47, 0x52, 0x35,
|
||||
0x2c, 0x35, 0x58, 0x89, 0xd3, 0x25, 0xc2, 0xaf, 0xc0, 0xbc, 0xd5, 0x6c, 0xb2, 0xac, 0x7e, 0xac,
|
||||
0xda, 0xbe, 0x23, 0x78, 0xcc, 0x01, 0x73, 0x64, 0x67, 0x99, 0x89, 0x77, 0x76, 0xf3, 0x5b, 0xb0,
|
||||
0x94, 0xb8, 0xd3, 0x71, 0x01, 0x72, 0xef, 0x79, 0x2e, 0x29, 0x5f, 0xc0, 0x65, 0xd0, 0xf6, 0x6c,
|
||||
0xd7, 0xf2, 0xfb, 0x1f, 0x90, 0x46, 0xe0, 0xf9, 0xe5, 0x26, 0x5e, 0x82, 0xe2, 0xdb, 0x8e, 0x67,
|
||||
0x05, 0x92, 0x40, 0x76, 0x7e, 0xb5, 0x0a, 0xa5, 0x77, 0xf9, 0x32, 0x55, 0xe2, 0x3f, 0xb6, 0x1b,
|
||||
0x04, 0xd7, 0xa0, 0x9c, 0x6c, 0xf6, 0xe3, 0xd7, 0x94, 0x0a, 0x4b, 0xf9, 0x4f, 0x80, 0x3e, 0x0e,
|
||||
0xb8, 0x71, 0x01, 0x7f, 0x04, 0x8b, 0xf1, 0x2e, 0x3d, 0x56, 0xfb, 0xa7, 0xb2, 0x95, 0x7f, 0x92,
|
||||
0xf0, 0x1a, 0x94, 0x62, 0x4d, 0x77, 0x7c, 0x43, 0x29, 0x5b, 0xd5, 0x98, 0xd7, 0x37, 0x95, 0xac,
|
||||
0xd1, 0xbe, 0xb9, 0x40, 0x1f, 0xef, 0x91, 0xa6, 0xa0, 0x57, 0x36, 0x52, 0x4f, 0x42, 0x6f, 0xc1,
|
||||
0xc5, 0x91, 0x96, 0x27, 0x7e, 0x5d, 0x29, 0x3f, 0xad, 0x35, 0x7a, 0xd2, 0x12, 0xc7, 0x80, 0x47,
|
||||
0x5b, 0xd3, 0xf8, 0xb6, 0xfa, 0x04, 0xd2, 0x3a, 0xef, 0xfa, 0xf6, 0xc4, 0xfc, 0xa1, 0xe2, 0x7e,
|
||||
0x82, 0xe0, 0x52, 0x4a, 0x9f, 0x12, 0xef, 0x2a, 0xc5, 0x8d, 0x6f, 0xb6, 0xea, 0x6f, 0x9e, 0x6e,
|
||||
0x52, 0x08, 0xc4, 0x85, 0xa5, 0x44, 0xe7, 0x10, 0xdf, 0x52, 0x8a, 0x52, 0x37, 0x31, 0xf5, 0xd7,
|
||||
0x26, 0x63, 0x0e, 0xd7, 0x7b, 0x00, 0x4b, 0x89, 0x6e, 0x61, 0xca, 0x7a, 0xea, 0x9e, 0xe2, 0x49,
|
||||
0x07, 0xfa, 0x21, 0x94, 0x62, 0x6d, 0xbd, 0x14, 0x8b, 0x57, 0xb5, 0xfe, 0x4e, 0x12, 0xfd, 0x00,
|
||||
0xb4, 0x68, 0xf7, 0x0d, 0x6f, 0xa5, 0xf9, 0xd2, 0x88, 0xe0, 0xd3, 0xb8, 0xd2, 0xb0, 0x70, 0x3f,
|
||||
0xc6, 0x95, 0x46, 0xfa, 0x11, 0x93, 0xbb, 0x52, 0x44, 0xfe, 0x58, 0x57, 0x3a, 0xf5, 0x12, 0x1f,
|
||||
0x23, 0x58, 0x53, 0x37, 0x6f, 0xf0, 0x4e, 0x9a, 0x6d, 0xa6, 0xb7, 0xa9, 0xf4, 0xdd, 0x53, 0xcd,
|
||||
0x09, 0xb5, 0xf8, 0x08, 0x16, 0xe3, 0xed, 0x8f, 0x14, 0x2d, 0x2a, 0xbb, 0x3a, 0xfa, 0xad, 0x89,
|
||||
0x78, 0xc3, 0xc5, 0xbe, 0x07, 0xc5, 0x48, 0x69, 0x1a, 0xbf, 0x3a, 0xc6, 0x8e, 0xa3, 0x95, 0x8f,
|
||||
0x93, 0x34, 0xd9, 0x86, 0x52, 0xac, 0x1c, 0x99, 0x66, 0xc3, 0x8a, 0x2a, 0xb1, 0x7e, 0x73, 0x12,
|
||||
0xd6, 0x70, 0x03, 0x6d, 0x28, 0xc5, 0x8a, 0x43, 0x29, 0x2b, 0xa9, 0x6a, 0x61, 0x29, 0x2b, 0x29,
|
||||
0x6b, 0x4d, 0xc6, 0x05, 0xfc, 0xa3, 0x48, 0x1d, 0x2a, 0x56, 0xeb, 0xc3, 0x5f, 0x1e, 0x2b, 0x47,
|
||||
0x55, 0xea, 0xd4, 0x77, 0x4e, 0x33, 0x25, 0x84, 0xf0, 0x3e, 0x2c, 0x84, 0x35, 0x28, 0x7c, 0x3d,
|
||||
0x35, 0x2c, 0x9c, 0xe6, 0xa4, 0xaa, 0x90, 0x17, 0xf5, 0x10, 0x6c, 0xa4, 0x14, 0x76, 0x23, 0xc5,
|
||||
0x22, 0xfd, 0x0b, 0x63, 0x79, 0x42, 0x9c, 0x26, 0xe4, 0xc5, 0x6b, 0x36, 0x45, 0x68, 0xac, 0x48,
|
||||
0xa0, 0x8f, 0xe7, 0xe1, 0xcf, 0x61, 0xe3, 0x02, 0x3e, 0x84, 0x39, 0xfe, 0x8c, 0xc5, 0xea, 0x50,
|
||||
0x14, 0x7d, 0xe2, 0x9e, 0xb4, 0xe7, 0x9f, 0x22, 0xa8, 0xa4, 0xbd, 0x53, 0x70, 0xea, 0x2d, 0x34,
|
||||
0xee, 0xb1, 0xa5, 0xdf, 0x39, 0xe5, 0xac, 0x50, 0x55, 0x4f, 0x61, 0x59, 0x91, 0x1d, 0xe3, 0xed,
|
||||
0x34, 0x79, 0x29, 0x89, 0xbd, 0xfe, 0xc6, 0xe4, 0x13, 0xc2, 0xb5, 0x09, 0x68, 0xd1, 0x84, 0x37,
|
||||
0xe5, 0x3a, 0x50, 0xe4, 0xca, 0xfa, 0x8d, 0x09, 0x38, 0x07, 0xcb, 0xec, 0xf4, 0x40, 0x3b, 0xf2,
|
||||
0xbd, 0x27, 0xfd, 0x41, 0x42, 0xfa, 0x72, 0x96, 0xdd, 0xbb, 0xf3, 0x83, 0xdd, 0x96, 0x1d, 0xb4,
|
||||
0x7b, 0x75, 0x76, 0xfe, 0xdb, 0x82, 0xf7, 0x75, 0xdb, 0x93, 0xbf, 0xb6, 0x6d, 0x37, 0x20, 0xbe,
|
||||
0x6b, 0x39, 0xdb, 0x5c, 0x96, 0xa4, 0x76, 0xeb, 0xf5, 0x3c, 0x1f, 0xef, 0xfe, 0x3f, 0x00, 0x00,
|
||||
0xff, 0xff, 0xed, 0xa9, 0xf8, 0x31, 0x64, 0x2b, 0x00, 0x00,
|
||||
// 2084 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xdf, 0x6f, 0x1b, 0xc7,
|
||||
0xf1, 0xf7, 0x92, 0x14, 0x45, 0x0d, 0x8f, 0x12, 0xbd, 0xfa, 0x61, 0xea, 0x6c, 0xc7, 0xd2, 0x7d,
|
||||
0xbf, 0x6e, 0x64, 0x3b, 0xb1, 0x52, 0x29, 0x6e, 0x5a, 0x14, 0x2d, 0x5a, 0x45, 0xb5, 0x2c, 0x38,
|
||||
0x09, 0x94, 0x93, 0x1b, 0x34, 0x0d, 0x0c, 0xe2, 0xc8, 0x5b, 0x8b, 0x07, 0x1f, 0xef, 0xd8, 0xdb,
|
||||
0xa3, 0x65, 0xfa, 0xa9, 0x40, 0x8a, 0x02, 0xfd, 0xe5, 0x14, 0x68, 0x51, 0xa0, 0x7d, 0x2c, 0x90,
|
||||
0xe7, 0xb6, 0x68, 0x80, 0x02, 0x7d, 0xee, 0x43, 0x81, 0xbe, 0xf4, 0x9f, 0xe8, 0x5b, 0xfb, 0x27,
|
||||
0x14, 0x28, 0xf6, 0x07, 0x8f, 0x77, 0xc7, 0x3d, 0x8a, 0x32, 0xe3, 0x88, 0x7a, 0xbb, 0x9b, 0x9b,
|
||||
0xdd, 0xfd, 0xcc, 0xec, 0xcc, 0xec, 0xec, 0xcc, 0x81, 0xd6, 0x76, 0xdc, 0x27, 0x5d, 0x7a, 0xbb,
|
||||
0x13, 0xf8, 0xa1, 0x8f, 0x17, 0xe3, 0x6f, 0xb7, 0xc5, 0x8b, 0xae, 0x35, 0xfd, 0x76, 0xdb, 0xf7,
|
||||
0x04, 0x51, 0xd7, 0x68, 0xb3, 0x45, 0xda, 0x96, 0x78, 0x33, 0x3e, 0x45, 0x70, 0xe9, 0xed, 0x80,
|
||||
0x58, 0x21, 0x79, 0xdb, 0x77, 0x5d, 0xd2, 0x0c, 0x1d, 0xdf, 0x33, 0xc9, 0x0f, 0xba, 0x84, 0x86,
|
||||
0xf8, 0x0d, 0x28, 0x34, 0x2c, 0x4a, 0x6a, 0x68, 0x0d, 0x6d, 0x94, 0xb7, 0xae, 0xdc, 0x4e, 0xcc,
|
||||
0x2d, 0xe7, 0x7c, 0x97, 0x1e, 0xed, 0x58, 0x94, 0x98, 0x9c, 0x13, 0x5f, 0x82, 0x59, 0xbb, 0x51,
|
||||
0xf7, 0xac, 0x36, 0xa9, 0xe5, 0xd6, 0xd0, 0xc6, 0x9c, 0x59, 0xb4, 0x1b, 0xef, 0x59, 0x6d, 0x82,
|
||||
0x5f, 0x85, 0x85, 0x66, 0x34, 0xbf, 0x60, 0xc8, 0x73, 0x86, 0xf9, 0x01, 0x99, 0x33, 0xae, 0x40,
|
||||
0x51, 0xe0, 0xab, 0x15, 0xd6, 0xd0, 0x86, 0x66, 0xca, 0x37, 0xe3, 0x67, 0x08, 0x96, 0x77, 0x03,
|
||||
0xbf, 0x33, 0x15, 0x28, 0x8d, 0x9f, 0x22, 0x58, 0xba, 0x67, 0xd1, 0xe9, 0x00, 0xf3, 0x21, 0x68,
|
||||
0x3b, 0xbe, 0xef, 0x9a, 0x84, 0x76, 0x7c, 0x8f, 0x12, 0xbc, 0x0d, 0x45, 0x1a, 0x5a, 0x61, 0x97,
|
||||
0x4a, 0x14, 0x97, 0x95, 0x28, 0x0e, 0x39, 0x8b, 0x29, 0x59, 0xf1, 0x12, 0xcc, 0x3c, 0xb1, 0xdc,
|
||||
0xae, 0x00, 0x51, 0x32, 0xc5, 0x8b, 0xf1, 0x11, 0xcc, 0x1f, 0x86, 0x81, 0xe3, 0x1d, 0x7d, 0x8e,
|
||||
0x93, 0xcf, 0xf5, 0x27, 0xff, 0x33, 0x82, 0xd5, 0x5d, 0x42, 0x9b, 0x81, 0xd3, 0x98, 0x12, 0xe3,
|
||||
0x33, 0x40, 0x1b, 0x50, 0xf6, 0x77, 0xb9, 0x09, 0xe6, 0xcd, 0x04, 0xcd, 0xf8, 0x0c, 0x81, 0xae,
|
||||
0x42, 0x3d, 0x89, 0x7e, 0xbe, 0x11, 0x19, 0x7d, 0x8e, 0x0f, 0xba, 0x9e, 0x1c, 0x24, 0x1d, 0x76,
|
||||
0xb0, 0xda, 0x21, 0x27, 0xf4, 0x7d, 0x63, 0x08, 0x76, 0x5e, 0x01, 0x9b, 0xf9, 0xcf, 0x3b, 0xbe,
|
||||
0x65, 0x4f, 0x87, 0xc9, 0x3e, 0x47, 0x50, 0x33, 0x89, 0x4b, 0x2c, 0x3a, 0x1d, 0x3b, 0x6f, 0xfc,
|
||||
0x1a, 0xc1, 0x2b, 0x7b, 0x24, 0x8c, 0xa9, 0x38, 0xb4, 0x42, 0x87, 0x86, 0x4e, 0x93, 0x9e, 0x25,
|
||||
0xac, 0x4f, 0x10, 0x5c, 0xcb, 0x84, 0x35, 0x89, 0xc5, 0xbd, 0x05, 0x33, 0xec, 0x89, 0xd6, 0x72,
|
||||
0x6b, 0xf9, 0x8d, 0xf2, 0xd6, 0xba, 0x72, 0xcc, 0x7d, 0xd2, 0xfb, 0x80, 0x79, 0xea, 0x81, 0xe5,
|
||||
0x04, 0xa6, 0xe0, 0x37, 0x9a, 0xb0, 0x72, 0xd8, 0xf2, 0x8f, 0x07, 0x88, 0x5e, 0x82, 0x7e, 0x8c,
|
||||
0x1e, 0x5c, 0x1a, 0x5a, 0x64, 0x12, 0x69, 0x6f, 0x40, 0x35, 0xa5, 0x6f, 0x21, 0xf8, 0x9c, 0xb9,
|
||||
0x90, 0x54, 0x38, 0x65, 0x41, 0x69, 0x45, 0x9c, 0x87, 0x07, 0x56, 0x10, 0x3a, 0x67, 0x1d, 0x91,
|
||||
0xae, 0xc3, 0x7c, 0xa7, 0x8f, 0x43, 0xf0, 0x15, 0x38, 0x5f, 0x25, 0xa2, 0x72, 0x85, 0xfd, 0x09,
|
||||
0xc1, 0x12, 0x3b, 0x1d, 0xcf, 0x13, 0xe6, 0x3f, 0x22, 0x58, 0xbc, 0x67, 0xd1, 0xf3, 0x04, 0xf9,
|
||||
0x33, 0x19, 0x44, 0x23, 0xcc, 0x67, 0x19, 0x1c, 0x18, 0x63, 0x12, 0x34, 0xad, 0x15, 0xb8, 0x51,
|
||||
0xcf, 0x27, 0x50, 0x53, 0xe3, 0x2f, 0x83, 0x68, 0x7b, 0xce, 0x90, 0xff, 0x15, 0xc1, 0xd5, 0x3d,
|
||||
0x12, 0x46, 0xa8, 0xa7, 0x22, 0x2a, 0x8f, 0x6b, 0x2d, 0xcf, 0xc5, 0x99, 0xa2, 0x04, 0x7f, 0x26,
|
||||
0xb1, 0xfb, 0x0f, 0x08, 0x96, 0x59, 0x5c, 0x9d, 0x0e, 0x23, 0x18, 0x27, 0xd9, 0xfa, 0x1d, 0x12,
|
||||
0xc7, 0x4d, 0x1c, 0xf1, 0x24, 0xaa, 0x53, 0x18, 0x5e, 0x4e, 0x65, 0x78, 0x0c, 0x5c, 0x44, 0xd9,
|
||||
0xdf, 0xa5, 0xb5, 0xfc, 0x5a, 0x9e, 0x81, 0x8b, 0xd3, 0x8c, 0x9f, 0x23, 0x58, 0xe9, 0x67, 0x82,
|
||||
0x87, 0xe4, 0xa8, 0x4d, 0xbc, 0xf0, 0xc5, 0xf5, 0x99, 0xd6, 0x46, 0x6e, 0x58, 0x1b, 0xf8, 0x0a,
|
||||
0xcc, 0x51, 0xb1, 0x4e, 0x94, 0xe4, 0x0d, 0x08, 0xfc, 0x26, 0x37, 0x04, 0x67, 0x12, 0x65, 0xd5,
|
||||
0x60, 0xd6, 0xf1, 0x6c, 0xf2, 0x34, 0x42, 0xd3, 0x7f, 0x65, 0x5f, 0x1a, 0x5d, 0xc7, 0xb5, 0x23,
|
||||
0x18, 0xfd, 0x57, 0xbc, 0x0e, 0x1a, 0xf1, 0xac, 0x86, 0x4b, 0xea, 0x9c, 0x97, 0x6f, 0x6a, 0xc9,
|
||||
0x2c, 0x0b, 0xda, 0x3e, 0x23, 0x19, 0xbf, 0x40, 0xb0, 0xc8, 0xf6, 0x54, 0x62, 0xa4, 0x2f, 0x57,
|
||||
0x67, 0x6b, 0x50, 0x8e, 0x6d, 0x9a, 0x84, 0x1b, 0x27, 0x19, 0x8f, 0x61, 0x29, 0x09, 0x67, 0x12,
|
||||
0x9d, 0xbd, 0x02, 0x10, 0xed, 0x88, 0xb0, 0xad, 0xbc, 0x19, 0xa3, 0x18, 0xff, 0x41, 0x80, 0x45,
|
||||
0x7a, 0xc1, 0x95, 0x71, 0x96, 0xfe, 0x77, 0x15, 0xe0, 0x91, 0x43, 0x5c, 0x3b, 0x1e, 0xc1, 0xe6,
|
||||
0x38, 0x85, 0x7f, 0xde, 0x05, 0x8d, 0x3c, 0x0d, 0x03, 0xab, 0xde, 0xb1, 0x02, 0xab, 0x4d, 0x6b,
|
||||
0x33, 0xe3, 0x06, 0x9b, 0x32, 0x1f, 0x76, 0xc0, 0x47, 0x19, 0x7f, 0x67, 0x89, 0x89, 0x34, 0xca,
|
||||
0x69, 0x97, 0xf8, 0x2a, 0x00, 0x37, 0x5a, 0xf1, 0x79, 0x46, 0x7c, 0xe6, 0x14, 0x1e, 0xce, 0x3f,
|
||||
0x45, 0x50, 0xe5, 0x22, 0x08, 0x79, 0x3a, 0x6c, 0xda, 0xd4, 0x18, 0x94, 0x1a, 0x33, 0xc2, 0x85,
|
||||
0xbe, 0x06, 0x45, 0xa9, 0xd8, 0xfc, 0xb8, 0x8a, 0x95, 0x03, 0x4e, 0x10, 0xc3, 0xf8, 0x3d, 0x82,
|
||||
0xe5, 0x94, 0xca, 0x27, 0xb1, 0xe8, 0x07, 0x80, 0x85, 0x84, 0xf6, 0x40, 0xec, 0xfe, 0xd1, 0x93,
|
||||
0xba, 0xa7, 0xca, 0x97, 0xb4, 0x92, 0xcc, 0x8b, 0x4e, 0x8a, 0x42, 0x8d, 0x7f, 0x22, 0xb8, 0xb2,
|
||||
0x47, 0x42, 0xce, 0xba, 0xc3, 0x62, 0xc7, 0x41, 0xe0, 0x1f, 0x05, 0x84, 0xd2, 0xf3, 0x6b, 0x1f,
|
||||
0xbf, 0x11, 0xb9, 0x8a, 0x4a, 0xa4, 0x49, 0xf4, 0xbf, 0x0e, 0x1a, 0x5f, 0x83, 0xd8, 0xf5, 0xc0,
|
||||
0x3f, 0xa6, 0xd2, 0x8e, 0xca, 0x92, 0x66, 0xfa, 0xc7, 0xdc, 0x20, 0x42, 0x3f, 0xb4, 0x5c, 0xc1,
|
||||
0x20, 0x0f, 0x06, 0x4e, 0x61, 0x9f, 0xb9, 0x0f, 0xf6, 0x81, 0xb1, 0xc9, 0xc9, 0xf9, 0xd5, 0xf1,
|
||||
0xc7, 0x08, 0x96, 0x53, 0xa2, 0x4c, 0xa2, 0xdb, 0x3b, 0x22, 0x93, 0x12, 0xc2, 0xcc, 0x6f, 0x5d,
|
||||
0x53, 0x8e, 0x89, 0x2d, 0x26, 0xb8, 0x8d, 0xbf, 0x21, 0xa8, 0xb2, 0xdb, 0xd6, 0x39, 0x0f, 0x68,
|
||||
0xff, 0x45, 0x50, 0xd9, 0xf7, 0x28, 0x09, 0xc2, 0xe9, 0x4f, 0xa6, 0xf1, 0x9b, 0x50, 0x0a, 0xfc,
|
||||
0xe3, 0xba, 0x6d, 0x85, 0x96, 0x3c, 0x8a, 0x56, 0x95, 0xf0, 0x76, 0x5c, 0xbf, 0x61, 0xce, 0x06,
|
||||
0xfe, 0xf1, 0xae, 0x15, 0x5a, 0xf8, 0x32, 0xcc, 0xb5, 0x2c, 0xda, 0xaa, 0x3f, 0x26, 0x3d, 0x5a,
|
||||
0x2b, 0xae, 0xe5, 0x37, 0x2a, 0x66, 0x89, 0x11, 0xee, 0x93, 0x1e, 0x65, 0xc6, 0x34, 0xdf, 0x97,
|
||||
0x7f, 0x12, 0x2b, 0xba, 0x06, 0xe5, 0xc0, 0x3f, 0xde, 0xdf, 0xad, 0x37, 0xc8, 0x91, 0xe3, 0x49,
|
||||
0x07, 0x05, 0x4e, 0xda, 0x61, 0x14, 0x86, 0x42, 0x30, 0x10, 0xcf, 0x96, 0xee, 0x59, 0xe2, 0x84,
|
||||
0xef, 0x78, 0xb6, 0xf1, 0x04, 0xaa, 0x07, 0xae, 0xd5, 0x24, 0x2d, 0xdf, 0xb5, 0x49, 0xc0, 0xa3,
|
||||
0x3d, 0xae, 0x42, 0x3e, 0xb4, 0x8e, 0xe4, 0x71, 0xc2, 0x1e, 0xf1, 0x57, 0xa1, 0x10, 0xf6, 0x3a,
|
||||
0x7d, 0x43, 0xfd, 0x7f, 0x65, 0xdc, 0x8d, 0x4d, 0xf3, 0xa0, 0xd7, 0x21, 0x26, 0x1f, 0x81, 0x57,
|
||||
0xa0, 0xc8, 0xcb, 0xad, 0xe2, 0xa0, 0xd1, 0x4c, 0xf9, 0x66, 0x3c, 0x4c, 0xac, 0xbb, 0x17, 0xf8,
|
||||
0xdd, 0x0e, 0xde, 0x07, 0xad, 0x33, 0xa0, 0x31, 0x25, 0x64, 0x47, 0xf9, 0x34, 0x68, 0x33, 0x31,
|
||||
0xd4, 0xf8, 0x77, 0x0e, 0x2a, 0x87, 0xc4, 0x0a, 0x9a, 0xad, 0xf3, 0x70, 0xd1, 0x64, 0x1a, 0xb7,
|
||||
0xa9, 0x2b, 0x7d, 0x84, 0x3d, 0xe2, 0x5b, 0x70, 0x31, 0x26, 0x50, 0xfd, 0x88, 0x29, 0xa8, 0x56,
|
||||
0xe4, 0x3d, 0x89, 0x6a, 0x27, 0xad, 0xb8, 0xb7, 0xa0, 0x64, 0x53, 0xb7, 0xce, 0xb7, 0x68, 0x96,
|
||||
0x6f, 0x91, 0x5a, 0xbe, 0x5d, 0xea, 0xf2, 0xad, 0x99, 0xb5, 0xc5, 0x03, 0xbe, 0x0b, 0x15, 0xca,
|
||||
0xb5, 0xd4, 0x4f, 0xb3, 0x4a, 0xe3, 0x66, 0x03, 0x9a, 0x18, 0x27, 0xf3, 0xac, 0xfb, 0x50, 0xb8,
|
||||
0xe7, 0x84, 0x5c, 0x0e, 0x96, 0x78, 0x22, 0x9e, 0x78, 0xb2, 0x47, 0xbc, 0x1a, 0x73, 0x9c, 0x1c,
|
||||
0xb7, 0x80, 0xc8, 0x3b, 0x78, 0xaf, 0xc5, 0x0f, 0xa4, 0x69, 0xe4, 0x4c, 0xf9, 0x66, 0x7c, 0x6f,
|
||||
0xb0, 0x75, 0xb4, 0xeb, 0x86, 0xf4, 0xc5, 0xdc, 0x02, 0x43, 0xa1, 0xe5, 0xc8, 0x5b, 0xaa, 0x66,
|
||||
0xf2, 0x67, 0xe3, 0x47, 0x08, 0xb4, 0xbb, 0x6e, 0x97, 0xbe, 0x0c, 0xa3, 0x50, 0x15, 0xf9, 0xf2,
|
||||
0xea, 0x22, 0xdf, 0x3f, 0x72, 0xb0, 0x7c, 0x40, 0x02, 0xea, 0xd0, 0x90, 0x78, 0xa1, 0xcc, 0xfc,
|
||||
0xf7, 0xbd, 0x47, 0x7e, 0xf2, 0x8a, 0x85, 0x52, 0x57, 0xac, 0xcf, 0xe7, 0xc2, 0xc1, 0xc2, 0x81,
|
||||
0xdf, 0x21, 0x5e, 0x3d, 0x74, 0x64, 0xb0, 0x2b, 0x98, 0x25, 0x46, 0x78, 0xe0, 0xb4, 0x09, 0x0b,
|
||||
0x26, 0x94, 0x58, 0x2e, 0xb1, 0xc5, 0xe7, 0x19, 0xfe, 0x19, 0x04, 0x89, 0x33, 0xac, 0x83, 0xf6,
|
||||
0x88, 0x69, 0xb0, 0xcf, 0x51, 0xe4, 0x1c, 0x65, 0x49, 0xe3, 0x2c, 0xab, 0x50, 0xf2, 0xba, 0x6d,
|
||||
0x91, 0x0d, 0xcc, 0x8a, 0xb4, 0xd3, 0xeb, 0xb6, 0x79, 0xaa, 0xb0, 0x0a, 0xa5, 0x36, 0x69, 0xd7,
|
||||
0xa9, 0xf3, 0x8c, 0xd4, 0x4a, 0xe2, 0x53, 0x9b, 0xb4, 0x0f, 0x9d, 0x67, 0xa4, 0x5f, 0x56, 0x20,
|
||||
0xb5, 0x39, 0x6e, 0xc0, 0x6a, 0x13, 0x94, 0xba, 0x4a, 0x1c, 0x87, 0xbf, 0x12, 0x45, 0x6a, 0xa5,
|
||||
0x42, 0x5f, 0x7c, 0x9f, 0x57, 0x40, 0x6e, 0x6c, 0x6a, 0x9b, 0xbf, 0x04, 0x29, 0x27, 0xcf, 0x28,
|
||||
0x9d, 0xff, 0x16, 0xc1, 0x5a, 0x36, 0xaa, 0x49, 0xe2, 0xfd, 0xb7, 0x60, 0xc6, 0xf1, 0x1e, 0xf9,
|
||||
0xfd, 0x24, 0xf8, 0xa6, 0x3a, 0x3c, 0x2a, 0xd7, 0x15, 0x03, 0x8d, 0x7f, 0x21, 0xa8, 0xbe, 0xdf,
|
||||
0x25, 0x41, 0xef, 0x8b, 0x36, 0xbd, 0xf8, 0xf6, 0x17, 0x92, 0xdb, 0x1f, 0x37, 0x9a, 0x99, 0xa4,
|
||||
0xd1, 0x24, 0xf3, 0x88, 0xe2, 0x88, 0x4b, 0xce, 0x6c, 0xe2, 0x92, 0x63, 0x3c, 0x47, 0xa0, 0xef,
|
||||
0x91, 0x30, 0x2d, 0xea, 0xd9, 0x19, 0xc5, 0x27, 0x08, 0x2e, 0x2b, 0x01, 0x4d, 0x62, 0x0f, 0x5f,
|
||||
0x4f, 0xda, 0x83, 0xfa, 0xb8, 0x1c, 0x5a, 0x52, 0x9a, 0xc2, 0x32, 0x2c, 0x9a, 0xe4, 0x88, 0x59,
|
||||
0x4a, 0xf0, 0x8e, 0xe3, 0x3d, 0x96, 0xaa, 0x61, 0xb9, 0xc9, 0x52, 0x92, 0x2e, 0x11, 0x7e, 0x05,
|
||||
0x66, 0x2d, 0xdb, 0x66, 0xd7, 0x8a, 0x91, 0x6a, 0xfb, 0xb6, 0xe0, 0x31, 0xfb, 0xcc, 0x31, 0xc9,
|
||||
0x72, 0x63, 0x4b, 0x76, 0xf3, 0x9b, 0xb0, 0x90, 0x4a, 0x2a, 0x70, 0x09, 0x0a, 0xef, 0xf9, 0x1e,
|
||||
0xa9, 0x5e, 0xc0, 0x55, 0xd0, 0x76, 0x1c, 0xcf, 0x0a, 0x7a, 0x1f, 0x90, 0x66, 0xe8, 0x07, 0x55,
|
||||
0x1b, 0x2f, 0x40, 0xf9, 0xae, 0xeb, 0x5b, 0xa1, 0x24, 0x90, 0xad, 0x5f, 0x2e, 0x43, 0xe5, 0x5d,
|
||||
0xbe, 0xcc, 0x21, 0x09, 0x9e, 0x38, 0x4d, 0x82, 0xeb, 0x50, 0x4d, 0xff, 0x6d, 0x80, 0x5f, 0x53,
|
||||
0x2a, 0x2c, 0xe3, 0xa7, 0x04, 0x7d, 0x14, 0x70, 0xe3, 0x02, 0xfe, 0x08, 0xe6, 0x93, 0xbf, 0x09,
|
||||
0x60, 0xb5, 0x7f, 0x2a, 0xff, 0x25, 0x38, 0x69, 0xf2, 0x3a, 0x54, 0x12, 0x5d, 0x7f, 0x7c, 0x43,
|
||||
0x39, 0xb7, 0xea, 0xcf, 0x00, 0x7d, 0x5d, 0xc9, 0x1a, 0x6f, 0xdc, 0x0b, 0xf4, 0xc9, 0x26, 0x6d,
|
||||
0x06, 0x7a, 0x65, 0x27, 0xf7, 0x24, 0xf4, 0x16, 0x5c, 0x1c, 0xea, 0xb9, 0xe2, 0xd7, 0x95, 0xf3,
|
||||
0x67, 0xf5, 0x66, 0x4f, 0x5a, 0xe2, 0x18, 0xf0, 0x70, 0x6f, 0x1c, 0xdf, 0x56, 0xef, 0x40, 0x56,
|
||||
0xeb, 0x5f, 0xdf, 0x1c, 0x9b, 0x3f, 0x52, 0xdc, 0x8f, 0x11, 0x5c, 0xca, 0x68, 0x94, 0xe2, 0x6d,
|
||||
0xe5, 0x74, 0xa3, 0xbb, 0xbd, 0xfa, 0x9b, 0xa7, 0x1b, 0x14, 0x01, 0xf1, 0x60, 0x21, 0xd5, 0xba,
|
||||
0xc4, 0xb7, 0x94, 0x53, 0xa9, 0xbb, 0xa8, 0xfa, 0x6b, 0xe3, 0x31, 0x47, 0xeb, 0x3d, 0x84, 0x85,
|
||||
0x54, 0xbb, 0x32, 0x63, 0x3d, 0x75, 0x53, 0xf3, 0xa4, 0x0d, 0xfd, 0x10, 0x2a, 0x89, 0xbe, 0x62,
|
||||
0x86, 0xc5, 0xab, 0x7a, 0x8f, 0x27, 0x4d, 0xfd, 0x10, 0xb4, 0x78, 0xfb, 0x0f, 0x6f, 0x64, 0xf9,
|
||||
0xd2, 0xd0, 0xc4, 0xa7, 0x71, 0xa5, 0x41, 0xe7, 0x60, 0x84, 0x2b, 0x0d, 0x35, 0x44, 0xc6, 0x77,
|
||||
0xa5, 0xd8, 0xfc, 0x23, 0x5d, 0xe9, 0xd4, 0x4b, 0x7c, 0x8c, 0x60, 0x45, 0xdd, 0x3d, 0xc2, 0x5b,
|
||||
0x59, 0xb6, 0x99, 0xdd, 0x27, 0xd3, 0xb7, 0x4f, 0x35, 0x26, 0xd2, 0xe2, 0x63, 0x98, 0x4f, 0xf6,
|
||||
0x5f, 0x32, 0xb4, 0xa8, 0x6c, 0x2b, 0xe9, 0xb7, 0xc6, 0xe2, 0x8d, 0x16, 0xfb, 0x2e, 0x94, 0x63,
|
||||
0xb5, 0x71, 0xfc, 0xea, 0x08, 0x3b, 0x8e, 0x97, 0x5e, 0x4e, 0xd2, 0x64, 0x0b, 0x2a, 0x89, 0x7a,
|
||||
0x68, 0x96, 0x0d, 0x2b, 0xca, 0xd4, 0xfa, 0xcd, 0x71, 0x58, 0x23, 0x01, 0x5a, 0x50, 0x49, 0x54,
|
||||
0xa7, 0x32, 0x56, 0x52, 0x15, 0xe3, 0x32, 0x56, 0x52, 0x16, 0xbb, 0x8c, 0x0b, 0xf8, 0x87, 0xb1,
|
||||
0x42, 0x58, 0xa2, 0xd8, 0x88, 0xbf, 0x3c, 0x72, 0x1e, 0x55, 0xad, 0x55, 0xdf, 0x3a, 0xcd, 0x90,
|
||||
0x08, 0xc2, 0xfb, 0x30, 0x17, 0x15, 0xc1, 0xf0, 0xf5, 0xcc, 0xb0, 0x70, 0x9a, 0x9d, 0x3a, 0x84,
|
||||
0xa2, 0x28, 0xc8, 0x60, 0x23, 0xa3, 0xb2, 0x1c, 0xab, 0x56, 0xe9, 0xff, 0x37, 0x92, 0x27, 0xc2,
|
||||
0x69, 0x42, 0x51, 0xdc, 0x66, 0x33, 0x26, 0x4d, 0x54, 0x29, 0xf4, 0xd1, 0x3c, 0xfc, 0x3a, 0x6c,
|
||||
0x5c, 0xc0, 0xfb, 0x30, 0xc3, 0xaf, 0xb1, 0x58, 0x1d, 0x8a, 0xe2, 0x57, 0xdc, 0x93, 0x64, 0xfe,
|
||||
0x09, 0x82, 0x5a, 0xd6, 0x3d, 0x05, 0x67, 0x9e, 0x42, 0xa3, 0x2e, 0x5b, 0xfa, 0x9d, 0x53, 0x8e,
|
||||
0x8a, 0x54, 0xf5, 0x0c, 0x16, 0x15, 0xd9, 0x31, 0xde, 0xcc, 0x9a, 0x2f, 0x23, 0xb1, 0xd7, 0xdf,
|
||||
0x18, 0x7f, 0x40, 0xb4, 0x36, 0x01, 0x2d, 0x9e, 0xf0, 0x66, 0x1c, 0x07, 0x8a, 0x5c, 0x59, 0xbf,
|
||||
0x31, 0x06, 0x67, 0x7f, 0x99, 0xad, 0x2e, 0x68, 0x07, 0x81, 0xff, 0xb4, 0xd7, 0x4f, 0x48, 0xbf,
|
||||
0x98, 0x65, 0x77, 0xee, 0x7c, 0x7f, 0xfb, 0xc8, 0x09, 0x5b, 0xdd, 0x06, 0xdb, 0xff, 0x4d, 0xc1,
|
||||
0xfb, 0xba, 0xe3, 0xcb, 0xa7, 0x4d, 0xc7, 0x0b, 0x49, 0xe0, 0x59, 0xee, 0x26, 0x9f, 0x4b, 0x52,
|
||||
0x3b, 0x8d, 0x46, 0x91, 0xbf, 0x6f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x24, 0x9e, 0xb3, 0x1f,
|
||||
0xe5, 0x2b, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
syntax = "proto3";
|
||||
package milvus.proto.plan;
|
||||
|
||||
option go_package = "github.com/milvus-io/milvus/internal/proto/planpb";
|
||||
import "schema.proto";
|
||||
|
||||
message GenericValue {
|
||||
oneof val {
|
||||
bool bool_val = 1;
|
||||
int64 int64_val = 2;
|
||||
double float_val = 3;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
message QueryInfo {
|
||||
int64 topk = 1;
|
||||
string metric_type = 3;
|
||||
string search_params = 4;
|
||||
}
|
||||
|
||||
message ColumnInfo {
|
||||
int64 field_id = 1;
|
||||
schema.DataType data_type = 2;
|
||||
}
|
||||
|
||||
message RangeExpr {
|
||||
ColumnInfo column_info = 1;
|
||||
enum OpType {
|
||||
Invalid = 0;
|
||||
GreaterThan = 1;
|
||||
GreaterEqual = 2;
|
||||
LessThan = 3;
|
||||
LessEqual = 4;
|
||||
Equal = 5;
|
||||
NotEqual = 6;
|
||||
};
|
||||
repeated OpType ops = 2;
|
||||
repeated GenericValue values = 3;
|
||||
}
|
||||
|
||||
message TermExpr {
|
||||
ColumnInfo column_info = 1;
|
||||
repeated GenericValue values = 2;
|
||||
}
|
||||
|
||||
message UnaryExpr {
|
||||
enum UnaryOp{
|
||||
Invalid = 0;
|
||||
Not = 1;
|
||||
};
|
||||
UnaryOp op = 1;
|
||||
Expr child = 2;
|
||||
}
|
||||
|
||||
message BinaryExpr {
|
||||
enum BinaryOp {
|
||||
Invalid = 0;
|
||||
LogicalAnd = 1;
|
||||
LogicalOr = 2;
|
||||
}
|
||||
}
|
||||
|
||||
message Expr {
|
||||
oneof expr {
|
||||
RangeExpr range_expr = 1;
|
||||
TermExpr term_expr = 2;
|
||||
UnaryExpr unary_expr = 3;
|
||||
BinaryExpr binary_expr = 4;
|
||||
};
|
||||
}
|
||||
|
||||
message VectorANNS {
|
||||
bool is_binary = 1;
|
||||
int64 field_id = 2;
|
||||
Expr predicates = 3;
|
||||
QueryInfo query_info = 4;
|
||||
string placeholder_tag = 5; // always be "$0"
|
||||
}
|
||||
|
||||
message PlanNode {
|
||||
oneof node {
|
||||
VectorANNS vector_anns = 1;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,810 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: plan.proto
|
||||
|
||||
package planpb
|
||||
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
schemapb "github.com/milvus-io/milvus/internal/proto/schemapb"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
var _ = fmt.Errorf
|
||||
var _ = math.Inf
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type RangeExpr_OpType int32
|
||||
|
||||
const (
|
||||
RangeExpr_Invalid RangeExpr_OpType = 0
|
||||
RangeExpr_GreaterThan RangeExpr_OpType = 1
|
||||
RangeExpr_GreaterEqual RangeExpr_OpType = 2
|
||||
RangeExpr_LessThan RangeExpr_OpType = 3
|
||||
RangeExpr_LessEqual RangeExpr_OpType = 4
|
||||
RangeExpr_Equal RangeExpr_OpType = 5
|
||||
RangeExpr_NotEqual RangeExpr_OpType = 6
|
||||
)
|
||||
|
||||
var RangeExpr_OpType_name = map[int32]string{
|
||||
0: "Invalid",
|
||||
1: "GreaterThan",
|
||||
2: "GreaterEqual",
|
||||
3: "LessThan",
|
||||
4: "LessEqual",
|
||||
5: "Equal",
|
||||
6: "NotEqual",
|
||||
}
|
||||
|
||||
var RangeExpr_OpType_value = map[string]int32{
|
||||
"Invalid": 0,
|
||||
"GreaterThan": 1,
|
||||
"GreaterEqual": 2,
|
||||
"LessThan": 3,
|
||||
"LessEqual": 4,
|
||||
"Equal": 5,
|
||||
"NotEqual": 6,
|
||||
}
|
||||
|
||||
func (x RangeExpr_OpType) String() string {
|
||||
return proto.EnumName(RangeExpr_OpType_name, int32(x))
|
||||
}
|
||||
|
||||
func (RangeExpr_OpType) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{3, 0}
|
||||
}
|
||||
|
||||
type UnaryExpr_UnaryOp int32
|
||||
|
||||
const (
|
||||
UnaryExpr_Invalid UnaryExpr_UnaryOp = 0
|
||||
UnaryExpr_Not UnaryExpr_UnaryOp = 1
|
||||
)
|
||||
|
||||
var UnaryExpr_UnaryOp_name = map[int32]string{
|
||||
0: "Invalid",
|
||||
1: "Not",
|
||||
}
|
||||
|
||||
var UnaryExpr_UnaryOp_value = map[string]int32{
|
||||
"Invalid": 0,
|
||||
"Not": 1,
|
||||
}
|
||||
|
||||
func (x UnaryExpr_UnaryOp) String() string {
|
||||
return proto.EnumName(UnaryExpr_UnaryOp_name, int32(x))
|
||||
}
|
||||
|
||||
func (UnaryExpr_UnaryOp) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{5, 0}
|
||||
}
|
||||
|
||||
type BinaryExpr_BinaryOp int32
|
||||
|
||||
const (
|
||||
BinaryExpr_Invalid BinaryExpr_BinaryOp = 0
|
||||
BinaryExpr_LogicalAnd BinaryExpr_BinaryOp = 1
|
||||
BinaryExpr_LogicalOr BinaryExpr_BinaryOp = 2
|
||||
)
|
||||
|
||||
var BinaryExpr_BinaryOp_name = map[int32]string{
|
||||
0: "Invalid",
|
||||
1: "LogicalAnd",
|
||||
2: "LogicalOr",
|
||||
}
|
||||
|
||||
var BinaryExpr_BinaryOp_value = map[string]int32{
|
||||
"Invalid": 0,
|
||||
"LogicalAnd": 1,
|
||||
"LogicalOr": 2,
|
||||
}
|
||||
|
||||
func (x BinaryExpr_BinaryOp) String() string {
|
||||
return proto.EnumName(BinaryExpr_BinaryOp_name, int32(x))
|
||||
}
|
||||
|
||||
func (BinaryExpr_BinaryOp) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{6, 0}
|
||||
}
|
||||
|
||||
type GenericValue struct {
|
||||
// Types that are valid to be assigned to Val:
|
||||
// *GenericValue_BoolVal
|
||||
// *GenericValue_Int64Val
|
||||
// *GenericValue_FloatVal
|
||||
Val isGenericValue_Val `protobuf_oneof:"val"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GenericValue) Reset() { *m = GenericValue{} }
|
||||
func (m *GenericValue) String() string { return proto.CompactTextString(m) }
|
||||
func (*GenericValue) ProtoMessage() {}
|
||||
func (*GenericValue) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{0}
|
||||
}
|
||||
|
||||
func (m *GenericValue) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GenericValue.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GenericValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GenericValue.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GenericValue) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GenericValue.Merge(m, src)
|
||||
}
|
||||
func (m *GenericValue) XXX_Size() int {
|
||||
return xxx_messageInfo_GenericValue.Size(m)
|
||||
}
|
||||
func (m *GenericValue) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GenericValue.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GenericValue proto.InternalMessageInfo
|
||||
|
||||
type isGenericValue_Val interface {
|
||||
isGenericValue_Val()
|
||||
}
|
||||
|
||||
type GenericValue_BoolVal struct {
|
||||
BoolVal bool `protobuf:"varint,1,opt,name=bool_val,json=boolVal,proto3,oneof"`
|
||||
}
|
||||
|
||||
type GenericValue_Int64Val struct {
|
||||
Int64Val int64 `protobuf:"varint,2,opt,name=int64_val,json=int64Val,proto3,oneof"`
|
||||
}
|
||||
|
||||
type GenericValue_FloatVal struct {
|
||||
FloatVal float64 `protobuf:"fixed64,3,opt,name=float_val,json=floatVal,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*GenericValue_BoolVal) isGenericValue_Val() {}
|
||||
|
||||
func (*GenericValue_Int64Val) isGenericValue_Val() {}
|
||||
|
||||
func (*GenericValue_FloatVal) isGenericValue_Val() {}
|
||||
|
||||
func (m *GenericValue) GetVal() isGenericValue_Val {
|
||||
if m != nil {
|
||||
return m.Val
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *GenericValue) GetBoolVal() bool {
|
||||
if x, ok := m.GetVal().(*GenericValue_BoolVal); ok {
|
||||
return x.BoolVal
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *GenericValue) GetInt64Val() int64 {
|
||||
if x, ok := m.GetVal().(*GenericValue_Int64Val); ok {
|
||||
return x.Int64Val
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *GenericValue) GetFloatVal() float64 {
|
||||
if x, ok := m.GetVal().(*GenericValue_FloatVal); ok {
|
||||
return x.FloatVal
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*GenericValue) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*GenericValue_BoolVal)(nil),
|
||||
(*GenericValue_Int64Val)(nil),
|
||||
(*GenericValue_FloatVal)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
type QueryInfo struct {
|
||||
Topk int64 `protobuf:"varint,1,opt,name=topk,proto3" json:"topk,omitempty"`
|
||||
MetricType string `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"`
|
||||
SearchParams string `protobuf:"bytes,4,opt,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *QueryInfo) Reset() { *m = QueryInfo{} }
|
||||
func (m *QueryInfo) String() string { return proto.CompactTextString(m) }
|
||||
func (*QueryInfo) ProtoMessage() {}
|
||||
func (*QueryInfo) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{1}
|
||||
}
|
||||
|
||||
func (m *QueryInfo) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_QueryInfo.Unmarshal(m, b)
|
||||
}
|
||||
func (m *QueryInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_QueryInfo.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *QueryInfo) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_QueryInfo.Merge(m, src)
|
||||
}
|
||||
func (m *QueryInfo) XXX_Size() int {
|
||||
return xxx_messageInfo_QueryInfo.Size(m)
|
||||
}
|
||||
func (m *QueryInfo) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_QueryInfo.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_QueryInfo proto.InternalMessageInfo
|
||||
|
||||
func (m *QueryInfo) GetTopk() int64 {
|
||||
if m != nil {
|
||||
return m.Topk
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *QueryInfo) GetMetricType() string {
|
||||
if m != nil {
|
||||
return m.MetricType
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *QueryInfo) GetSearchParams() string {
|
||||
if m != nil {
|
||||
return m.SearchParams
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type ColumnInfo struct {
|
||||
FieldId int64 `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
|
||||
DataType schemapb.DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=milvus.proto.schema.DataType" json:"data_type,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *ColumnInfo) Reset() { *m = ColumnInfo{} }
|
||||
func (m *ColumnInfo) String() string { return proto.CompactTextString(m) }
|
||||
func (*ColumnInfo) ProtoMessage() {}
|
||||
func (*ColumnInfo) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{2}
|
||||
}
|
||||
|
||||
func (m *ColumnInfo) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ColumnInfo.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ColumnInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ColumnInfo.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *ColumnInfo) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ColumnInfo.Merge(m, src)
|
||||
}
|
||||
func (m *ColumnInfo) XXX_Size() int {
|
||||
return xxx_messageInfo_ColumnInfo.Size(m)
|
||||
}
|
||||
func (m *ColumnInfo) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_ColumnInfo.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_ColumnInfo proto.InternalMessageInfo
|
||||
|
||||
func (m *ColumnInfo) GetFieldId() int64 {
|
||||
if m != nil {
|
||||
return m.FieldId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *ColumnInfo) GetDataType() schemapb.DataType {
|
||||
if m != nil {
|
||||
return m.DataType
|
||||
}
|
||||
return schemapb.DataType_None
|
||||
}
|
||||
|
||||
type RangeExpr struct {
|
||||
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
|
||||
Ops []RangeExpr_OpType `protobuf:"varint,2,rep,packed,name=ops,proto3,enum=milvus.proto.plan.RangeExpr_OpType" json:"ops,omitempty"`
|
||||
Values []*GenericValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *RangeExpr) Reset() { *m = RangeExpr{} }
|
||||
func (m *RangeExpr) String() string { return proto.CompactTextString(m) }
|
||||
func (*RangeExpr) ProtoMessage() {}
|
||||
func (*RangeExpr) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{3}
|
||||
}
|
||||
|
||||
func (m *RangeExpr) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_RangeExpr.Unmarshal(m, b)
|
||||
}
|
||||
func (m *RangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_RangeExpr.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *RangeExpr) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_RangeExpr.Merge(m, src)
|
||||
}
|
||||
func (m *RangeExpr) XXX_Size() int {
|
||||
return xxx_messageInfo_RangeExpr.Size(m)
|
||||
}
|
||||
func (m *RangeExpr) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_RangeExpr.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_RangeExpr proto.InternalMessageInfo
|
||||
|
||||
func (m *RangeExpr) GetColumnInfo() *ColumnInfo {
|
||||
if m != nil {
|
||||
return m.ColumnInfo
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *RangeExpr) GetOps() []RangeExpr_OpType {
|
||||
if m != nil {
|
||||
return m.Ops
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *RangeExpr) GetValues() []*GenericValue {
|
||||
if m != nil {
|
||||
return m.Values
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type TermExpr struct {
|
||||
ColumnInfo *ColumnInfo `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
|
||||
Values []*GenericValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *TermExpr) Reset() { *m = TermExpr{} }
|
||||
func (m *TermExpr) String() string { return proto.CompactTextString(m) }
|
||||
func (*TermExpr) ProtoMessage() {}
|
||||
func (*TermExpr) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{4}
|
||||
}
|
||||
|
||||
func (m *TermExpr) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_TermExpr.Unmarshal(m, b)
|
||||
}
|
||||
func (m *TermExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_TermExpr.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *TermExpr) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_TermExpr.Merge(m, src)
|
||||
}
|
||||
func (m *TermExpr) XXX_Size() int {
|
||||
return xxx_messageInfo_TermExpr.Size(m)
|
||||
}
|
||||
func (m *TermExpr) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_TermExpr.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_TermExpr proto.InternalMessageInfo
|
||||
|
||||
func (m *TermExpr) GetColumnInfo() *ColumnInfo {
|
||||
if m != nil {
|
||||
return m.ColumnInfo
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TermExpr) GetValues() []*GenericValue {
|
||||
if m != nil {
|
||||
return m.Values
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type UnaryExpr struct {
|
||||
Op UnaryExpr_UnaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.UnaryExpr_UnaryOp" json:"op,omitempty"`
|
||||
Child *Expr `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *UnaryExpr) Reset() { *m = UnaryExpr{} }
|
||||
func (m *UnaryExpr) String() string { return proto.CompactTextString(m) }
|
||||
func (*UnaryExpr) ProtoMessage() {}
|
||||
func (*UnaryExpr) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{5}
|
||||
}
|
||||
|
||||
func (m *UnaryExpr) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UnaryExpr.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UnaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UnaryExpr.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *UnaryExpr) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UnaryExpr.Merge(m, src)
|
||||
}
|
||||
func (m *UnaryExpr) XXX_Size() int {
|
||||
return xxx_messageInfo_UnaryExpr.Size(m)
|
||||
}
|
||||
func (m *UnaryExpr) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_UnaryExpr.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_UnaryExpr proto.InternalMessageInfo
|
||||
|
||||
func (m *UnaryExpr) GetOp() UnaryExpr_UnaryOp {
|
||||
if m != nil {
|
||||
return m.Op
|
||||
}
|
||||
return UnaryExpr_Invalid
|
||||
}
|
||||
|
||||
func (m *UnaryExpr) GetChild() *Expr {
|
||||
if m != nil {
|
||||
return m.Child
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type BinaryExpr struct {
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *BinaryExpr) Reset() { *m = BinaryExpr{} }
|
||||
func (m *BinaryExpr) String() string { return proto.CompactTextString(m) }
|
||||
func (*BinaryExpr) ProtoMessage() {}
|
||||
func (*BinaryExpr) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{6}
|
||||
}
|
||||
|
||||
func (m *BinaryExpr) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_BinaryExpr.Unmarshal(m, b)
|
||||
}
|
||||
func (m *BinaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_BinaryExpr.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *BinaryExpr) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_BinaryExpr.Merge(m, src)
|
||||
}
|
||||
func (m *BinaryExpr) XXX_Size() int {
|
||||
return xxx_messageInfo_BinaryExpr.Size(m)
|
||||
}
|
||||
func (m *BinaryExpr) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_BinaryExpr.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_BinaryExpr proto.InternalMessageInfo
|
||||
|
||||
type Expr struct {
|
||||
// Types that are valid to be assigned to Expr:
|
||||
// *Expr_RangeExpr
|
||||
// *Expr_TermExpr
|
||||
// *Expr_UnaryExpr
|
||||
// *Expr_BinaryExpr
|
||||
Expr isExpr_Expr `protobuf_oneof:"expr"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Expr) Reset() { *m = Expr{} }
|
||||
func (m *Expr) String() string { return proto.CompactTextString(m) }
|
||||
func (*Expr) ProtoMessage() {}
|
||||
func (*Expr) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{7}
|
||||
}
|
||||
|
||||
func (m *Expr) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Expr.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Expr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Expr.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Expr) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Expr.Merge(m, src)
|
||||
}
|
||||
func (m *Expr) XXX_Size() int {
|
||||
return xxx_messageInfo_Expr.Size(m)
|
||||
}
|
||||
func (m *Expr) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Expr.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Expr proto.InternalMessageInfo
|
||||
|
||||
type isExpr_Expr interface {
|
||||
isExpr_Expr()
|
||||
}
|
||||
|
||||
type Expr_RangeExpr struct {
|
||||
RangeExpr *RangeExpr `protobuf:"bytes,1,opt,name=range_expr,json=rangeExpr,proto3,oneof"`
|
||||
}
|
||||
|
||||
type Expr_TermExpr struct {
|
||||
TermExpr *TermExpr `protobuf:"bytes,2,opt,name=term_expr,json=termExpr,proto3,oneof"`
|
||||
}
|
||||
|
||||
type Expr_UnaryExpr struct {
|
||||
UnaryExpr *UnaryExpr `protobuf:"bytes,3,opt,name=unary_expr,json=unaryExpr,proto3,oneof"`
|
||||
}
|
||||
|
||||
type Expr_BinaryExpr struct {
|
||||
BinaryExpr *BinaryExpr `protobuf:"bytes,4,opt,name=binary_expr,json=binaryExpr,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*Expr_RangeExpr) isExpr_Expr() {}
|
||||
|
||||
func (*Expr_TermExpr) isExpr_Expr() {}
|
||||
|
||||
func (*Expr_UnaryExpr) isExpr_Expr() {}
|
||||
|
||||
func (*Expr_BinaryExpr) isExpr_Expr() {}
|
||||
|
||||
func (m *Expr) GetExpr() isExpr_Expr {
|
||||
if m != nil {
|
||||
return m.Expr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Expr) GetRangeExpr() *RangeExpr {
|
||||
if x, ok := m.GetExpr().(*Expr_RangeExpr); ok {
|
||||
return x.RangeExpr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Expr) GetTermExpr() *TermExpr {
|
||||
if x, ok := m.GetExpr().(*Expr_TermExpr); ok {
|
||||
return x.TermExpr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Expr) GetUnaryExpr() *UnaryExpr {
|
||||
if x, ok := m.GetExpr().(*Expr_UnaryExpr); ok {
|
||||
return x.UnaryExpr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Expr) GetBinaryExpr() *BinaryExpr {
|
||||
if x, ok := m.GetExpr().(*Expr_BinaryExpr); ok {
|
||||
return x.BinaryExpr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*Expr) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*Expr_RangeExpr)(nil),
|
||||
(*Expr_TermExpr)(nil),
|
||||
(*Expr_UnaryExpr)(nil),
|
||||
(*Expr_BinaryExpr)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
type VectorANNS struct {
|
||||
IsBinary bool `protobuf:"varint,1,opt,name=is_binary,json=isBinary,proto3" json:"is_binary,omitempty"`
|
||||
FieldId int64 `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
|
||||
Predicates *Expr `protobuf:"bytes,3,opt,name=predicates,proto3" json:"predicates,omitempty"`
|
||||
QueryInfo *QueryInfo `protobuf:"bytes,4,opt,name=query_info,json=queryInfo,proto3" json:"query_info,omitempty"`
|
||||
PlaceholderTag string `protobuf:"bytes,5,opt,name=placeholder_tag,json=placeholderTag,proto3" json:"placeholder_tag,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *VectorANNS) Reset() { *m = VectorANNS{} }
|
||||
func (m *VectorANNS) String() string { return proto.CompactTextString(m) }
|
||||
func (*VectorANNS) ProtoMessage() {}
|
||||
func (*VectorANNS) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{8}
|
||||
}
|
||||
|
||||
func (m *VectorANNS) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_VectorANNS.Unmarshal(m, b)
|
||||
}
|
||||
func (m *VectorANNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_VectorANNS.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *VectorANNS) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_VectorANNS.Merge(m, src)
|
||||
}
|
||||
func (m *VectorANNS) XXX_Size() int {
|
||||
return xxx_messageInfo_VectorANNS.Size(m)
|
||||
}
|
||||
func (m *VectorANNS) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_VectorANNS.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_VectorANNS proto.InternalMessageInfo
|
||||
|
||||
func (m *VectorANNS) GetIsBinary() bool {
|
||||
if m != nil {
|
||||
return m.IsBinary
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *VectorANNS) GetFieldId() int64 {
|
||||
if m != nil {
|
||||
return m.FieldId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *VectorANNS) GetPredicates() *Expr {
|
||||
if m != nil {
|
||||
return m.Predicates
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *VectorANNS) GetQueryInfo() *QueryInfo {
|
||||
if m != nil {
|
||||
return m.QueryInfo
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *VectorANNS) GetPlaceholderTag() string {
|
||||
if m != nil {
|
||||
return m.PlaceholderTag
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type PlanNode struct {
|
||||
// Types that are valid to be assigned to Node:
|
||||
// *PlanNode_VectorAnns
|
||||
Node isPlanNode_Node `protobuf_oneof:"node"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *PlanNode) Reset() { *m = PlanNode{} }
|
||||
func (m *PlanNode) String() string { return proto.CompactTextString(m) }
|
||||
func (*PlanNode) ProtoMessage() {}
|
||||
func (*PlanNode) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_2d655ab2f7683c23, []int{9}
|
||||
}
|
||||
|
||||
func (m *PlanNode) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_PlanNode.Unmarshal(m, b)
|
||||
}
|
||||
func (m *PlanNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_PlanNode.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *PlanNode) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_PlanNode.Merge(m, src)
|
||||
}
|
||||
func (m *PlanNode) XXX_Size() int {
|
||||
return xxx_messageInfo_PlanNode.Size(m)
|
||||
}
|
||||
func (m *PlanNode) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_PlanNode.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_PlanNode proto.InternalMessageInfo
|
||||
|
||||
type isPlanNode_Node interface {
|
||||
isPlanNode_Node()
|
||||
}
|
||||
|
||||
type PlanNode_VectorAnns struct {
|
||||
VectorAnns *VectorANNS `protobuf:"bytes,1,opt,name=vector_anns,json=vectorAnns,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*PlanNode_VectorAnns) isPlanNode_Node() {}
|
||||
|
||||
func (m *PlanNode) GetNode() isPlanNode_Node {
|
||||
if m != nil {
|
||||
return m.Node
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *PlanNode) GetVectorAnns() *VectorANNS {
|
||||
if x, ok := m.GetNode().(*PlanNode_VectorAnns); ok {
|
||||
return x.VectorAnns
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*PlanNode) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*PlanNode_VectorAnns)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("milvus.proto.plan.RangeExpr_OpType", RangeExpr_OpType_name, RangeExpr_OpType_value)
|
||||
proto.RegisterEnum("milvus.proto.plan.UnaryExpr_UnaryOp", UnaryExpr_UnaryOp_name, UnaryExpr_UnaryOp_value)
|
||||
proto.RegisterEnum("milvus.proto.plan.BinaryExpr_BinaryOp", BinaryExpr_BinaryOp_name, BinaryExpr_BinaryOp_value)
|
||||
proto.RegisterType((*GenericValue)(nil), "milvus.proto.plan.GenericValue")
|
||||
proto.RegisterType((*QueryInfo)(nil), "milvus.proto.plan.QueryInfo")
|
||||
proto.RegisterType((*ColumnInfo)(nil), "milvus.proto.plan.ColumnInfo")
|
||||
proto.RegisterType((*RangeExpr)(nil), "milvus.proto.plan.RangeExpr")
|
||||
proto.RegisterType((*TermExpr)(nil), "milvus.proto.plan.TermExpr")
|
||||
proto.RegisterType((*UnaryExpr)(nil), "milvus.proto.plan.UnaryExpr")
|
||||
proto.RegisterType((*BinaryExpr)(nil), "milvus.proto.plan.BinaryExpr")
|
||||
proto.RegisterType((*Expr)(nil), "milvus.proto.plan.Expr")
|
||||
proto.RegisterType((*VectorANNS)(nil), "milvus.proto.plan.VectorANNS")
|
||||
proto.RegisterType((*PlanNode)(nil), "milvus.proto.plan.PlanNode")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) }
|
||||
|
||||
var fileDescriptor_2d655ab2f7683c23 = []byte{
|
||||
// 792 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x6f, 0xdb, 0x36,
|
||||
0x14, 0xb7, 0x24, 0xff, 0x91, 0x9e, 0x5d, 0xd7, 0xe3, 0x65, 0xde, 0xb2, 0x22, 0x86, 0x3a, 0x60,
|
||||
0xbe, 0xd4, 0xc1, 0xdc, 0xae, 0x05, 0x3a, 0x74, 0x58, 0xb2, 0x16, 0x4d, 0x80, 0xc2, 0xe9, 0x34,
|
||||
0x2f, 0x87, 0x5d, 0x04, 0x5a, 0x62, 0x6c, 0x62, 0x34, 0xc9, 0x50, 0x94, 0xd1, 0x9c, 0x77, 0xdb,
|
||||
0x6d, 0x9f, 0x63, 0x1f, 0x6b, 0x5f, 0x64, 0x20, 0xa9, 0xc8, 0x71, 0xe0, 0x04, 0x18, 0xb0, 0x1b,
|
||||
0xdf, 0x9f, 0xdf, 0xfb, 0x91, 0xbf, 0xf7, 0xf8, 0x00, 0x24, 0xc3, 0x7c, 0x22, 0x95, 0xd0, 0x02,
|
||||
0x7d, 0xb6, 0xa6, 0x6c, 0x53, 0x16, 0xce, 0x9a, 0x98, 0xc0, 0x97, 0xbd, 0x22, 0x5b, 0x91, 0x35,
|
||||
0x76, 0xae, 0x58, 0x42, 0xef, 0x3d, 0xe1, 0x44, 0xd1, 0xec, 0x02, 0xb3, 0x92, 0xa0, 0x03, 0x08,
|
||||
0x17, 0x42, 0xb0, 0x74, 0x83, 0xd9, 0xd0, 0x1b, 0x79, 0xe3, 0xf0, 0xb4, 0x91, 0x74, 0x8c, 0xe7,
|
||||
0x02, 0x33, 0xf4, 0x04, 0x22, 0xca, 0xf5, 0xcb, 0x17, 0x36, 0xea, 0x8f, 0xbc, 0x71, 0x70, 0xda,
|
||||
0x48, 0x42, 0xeb, 0xaa, 0xc2, 0x97, 0x4c, 0x60, 0x6d, 0xc3, 0xc1, 0xc8, 0x1b, 0x7b, 0x26, 0x6c,
|
||||
0x5d, 0x17, 0x98, 0x9d, 0xb4, 0x20, 0xd8, 0x60, 0x16, 0x13, 0x88, 0x7e, 0x2e, 0x89, 0xba, 0x3e,
|
||||
0xe3, 0x97, 0x02, 0x21, 0x68, 0x6a, 0x21, 0x7f, 0xb7, 0x54, 0x41, 0x62, 0xcf, 0xe8, 0x10, 0xba,
|
||||
0x6b, 0xa2, 0x15, 0xcd, 0x52, 0x7d, 0x2d, 0x89, 0x2d, 0x14, 0x25, 0xe0, 0x5c, 0xf3, 0x6b, 0x49,
|
||||
0xd0, 0x53, 0x78, 0x54, 0x10, 0xac, 0xb2, 0x55, 0x2a, 0xb1, 0xc2, 0xeb, 0x62, 0xd8, 0xb4, 0x29,
|
||||
0x3d, 0xe7, 0xfc, 0x68, 0x7d, 0x71, 0x06, 0xf0, 0x93, 0x60, 0xe5, 0x9a, 0x5b, 0x9e, 0x2f, 0x20,
|
||||
0xbc, 0xa4, 0x84, 0xe5, 0x29, 0xcd, 0x2b, 0xae, 0x8e, 0xb5, 0xcf, 0x72, 0xf4, 0x1a, 0xa2, 0x1c,
|
||||
0x6b, 0xec, 0xc8, 0xcc, 0xa3, 0xfa, 0xd3, 0x27, 0x93, 0x1d, 0xd9, 0x2a, 0xc1, 0xde, 0x62, 0x8d,
|
||||
0x0d, 0x7f, 0x12, 0xe6, 0xd5, 0x29, 0xfe, 0xdb, 0x87, 0x28, 0xc1, 0x7c, 0x49, 0xde, 0x7d, 0x92,
|
||||
0x0a, 0xfd, 0x00, 0xdd, 0xcc, 0x52, 0xa6, 0x94, 0x5f, 0x0a, 0xcb, 0xd3, 0xbd, 0x5b, 0xcb, 0xf6,
|
||||
0x66, 0x7b, 0xb1, 0x04, 0xb2, 0xed, 0x25, 0xbf, 0x83, 0x40, 0xc8, 0x62, 0xe8, 0x8f, 0x82, 0x71,
|
||||
0x7f, 0xfa, 0x74, 0x0f, 0xae, 0xa6, 0x9a, 0x9c, 0x4b, 0x7b, 0x13, 0x93, 0x8f, 0x5e, 0x41, 0x7b,
|
||||
0x63, 0x7a, 0x57, 0x0c, 0x83, 0x51, 0x30, 0xee, 0x4e, 0x0f, 0xf7, 0x20, 0x6f, 0xf7, 0x38, 0xa9,
|
||||
0xd2, 0x63, 0x0e, 0x6d, 0x57, 0x07, 0x75, 0xa1, 0x73, 0xc6, 0x37, 0x98, 0xd1, 0x7c, 0xd0, 0x40,
|
||||
0x8f, 0xa1, 0xfb, 0x5e, 0x11, 0xac, 0x89, 0x9a, 0xaf, 0x30, 0x1f, 0x78, 0x68, 0x00, 0xbd, 0xca,
|
||||
0xf1, 0xee, 0xaa, 0xc4, 0x6c, 0xe0, 0xa3, 0x1e, 0x84, 0x1f, 0x48, 0x51, 0xd8, 0x78, 0x80, 0x1e,
|
||||
0x41, 0x64, 0x2c, 0x17, 0x6c, 0xa2, 0x08, 0x5a, 0xee, 0xd8, 0x32, 0x79, 0x33, 0xa1, 0x9d, 0xd5,
|
||||
0x8e, 0xff, 0xf0, 0x20, 0x9c, 0x13, 0xb5, 0xfe, 0x5f, 0xc4, 0xda, 0xbe, 0xda, 0xff, 0x6f, 0xaf,
|
||||
0xfe, 0xcb, 0x83, 0xe8, 0x57, 0x8e, 0xd5, 0xb5, 0xbd, 0xc6, 0x0b, 0xf0, 0x85, 0xb4, 0xec, 0xfd,
|
||||
0xe9, 0xd7, 0x7b, 0x4a, 0xd4, 0x99, 0xee, 0x74, 0x2e, 0x13, 0x5f, 0x48, 0xf4, 0x0c, 0x5a, 0xd9,
|
||||
0x8a, 0xb2, 0xdc, 0xce, 0x4b, 0x77, 0xfa, 0xf9, 0x1e, 0xa0, 0xc1, 0x24, 0x2e, 0x2b, 0x3e, 0x84,
|
||||
0x4e, 0x85, 0xde, 0x55, 0xba, 0x03, 0xc1, 0x4c, 0xe8, 0x81, 0x17, 0xbf, 0x05, 0x38, 0xa1, 0x37,
|
||||
0x4c, 0xf1, 0x4b, 0x08, 0x9d, 0x75, 0x37, 0xbf, 0x0f, 0xf0, 0x41, 0x2c, 0x69, 0x86, 0xd9, 0x31,
|
||||
0xcf, 0x07, 0x9e, 0x15, 0xde, 0xd9, 0xe7, 0x6a, 0xe0, 0xc7, 0x7f, 0xfa, 0xd0, 0xb4, 0x8f, 0x7a,
|
||||
0x03, 0xa0, 0xcc, 0xa8, 0xa4, 0xe4, 0x93, 0x54, 0x95, 0xb4, 0x5f, 0x3d, 0x34, 0x4f, 0xa7, 0x8d,
|
||||
0x24, 0x52, 0xf5, 0x1c, 0xbf, 0x86, 0x48, 0x13, 0xb5, 0x76, 0x68, 0xf7, 0xc2, 0x83, 0x3d, 0xe8,
|
||||
0x9b, 0x56, 0x9a, 0x4f, 0xae, 0x6f, 0xda, 0xfa, 0x06, 0xa0, 0x34, 0x57, 0x77, 0xe0, 0xe0, 0x5e,
|
||||
0xea, 0x5a, 0x57, 0x43, 0x5d, 0xd6, 0xed, 0xf8, 0x11, 0xba, 0x0b, 0xba, 0xc5, 0x37, 0xef, 0x9d,
|
||||
0x8a, 0xad, 0x5c, 0xa7, 0x8d, 0x04, 0x16, 0xb5, 0x75, 0xd2, 0x86, 0xa6, 0x81, 0xc6, 0xff, 0x78,
|
||||
0x00, 0x17, 0x24, 0xd3, 0x42, 0x1d, 0xcf, 0x66, 0xbf, 0xa0, 0x03, 0x88, 0x68, 0x91, 0xba, 0x3c,
|
||||
0xb7, 0xd8, 0x92, 0x90, 0x16, 0xae, 0xca, 0xce, 0x76, 0xf0, 0x77, 0xb7, 0xc3, 0x2b, 0x00, 0xa9,
|
||||
0x48, 0x4e, 0x33, 0xac, 0xed, 0x07, 0x7b, 0xb0, 0xdd, 0xb7, 0x52, 0xd1, 0xf7, 0x00, 0x57, 0x66,
|
||||
0xcd, 0xb9, 0xf1, 0x6e, 0xde, 0x2b, 0x44, 0xbd, 0x0b, 0x93, 0xe8, 0xaa, 0x5e, 0x8b, 0xdf, 0xc0,
|
||||
0x63, 0xc9, 0x70, 0x46, 0x56, 0x82, 0xe5, 0x44, 0xa5, 0x1a, 0x2f, 0x87, 0x2d, 0xbb, 0xe3, 0xfa,
|
||||
0xb7, 0xdc, 0x73, 0xbc, 0x8c, 0xe7, 0x10, 0x7e, 0x64, 0x98, 0xcf, 0x44, 0x4e, 0x8c, 0x76, 0x1b,
|
||||
0xfb, 0xe0, 0x14, 0x73, 0x5e, 0x3c, 0xf0, 0xa3, 0xb6, 0xb2, 0x18, 0xed, 0x1c, 0xe6, 0x98, 0xf3,
|
||||
0xc2, 0x68, 0xc7, 0x45, 0x4e, 0x4e, 0x9e, 0xff, 0xf6, 0xed, 0x92, 0xea, 0x55, 0xb9, 0x98, 0x64,
|
||||
0x62, 0x7d, 0xe4, 0x0a, 0x3c, 0xa3, 0xa2, 0x3a, 0x1d, 0x51, 0xae, 0x89, 0xe2, 0x98, 0x1d, 0xd9,
|
||||
0x9a, 0x47, 0xa6, 0xa6, 0x5c, 0x2c, 0xda, 0xd6, 0x7a, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0x33, 0x17, 0x7b, 0x52, 0x7f, 0x06, 0x00, 0x00,
|
||||
}
|
|
@ -0,0 +1,294 @@
|
|||
package proxynode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
ant_ast "github.com/antonmedv/expr/ast"
|
||||
ant_parser "github.com/antonmedv/expr/parser"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/proto/planpb"
|
||||
"github.com/milvus-io/milvus/internal/proto/schemapb"
|
||||
"github.com/milvus-io/milvus/internal/util/typeutil"
|
||||
)
|
||||
|
||||
//func parseQueryExprNaive(schema *typeutil.SchemaHelper, exprStr string) (*planpb.Expr, error) {
|
||||
// // TODO: handle more cases
|
||||
// // TODO: currently just A > 3
|
||||
//
|
||||
// tmps := strings.Split(exprStr, ">")
|
||||
// if len(tmps) != 2 {
|
||||
// return nil, errors.New("unsupported yet")
|
||||
// }
|
||||
// for i, str := range tmps {
|
||||
// tmps[i] = strings.TrimSpace(str)
|
||||
// }
|
||||
// fieldName := tmps[0]
|
||||
// tmpValue, err := strconv.ParseInt(tmps[1], 10, 64)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// fieldValue := &planpb.GenericValue{
|
||||
// Val: &planpb.GenericValue_Int64Val{Int64Val: tmpValue},
|
||||
// }
|
||||
//
|
||||
// field, err := schema.GetFieldFromName(fieldName)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
//
|
||||
// expr := &planpb.Expr{
|
||||
// Expr: &planpb.Expr_RangeExpr{
|
||||
// RangeExpr: &planpb.RangeExpr{
|
||||
// ColumnInfo: &planpb.ColumnInfo{
|
||||
// FieldId: field.FieldID,
|
||||
// DataType: field.DataType,
|
||||
// },
|
||||
// Ops: []planpb.RangeExpr_OpType{planpb.RangeExpr_GreaterThan},
|
||||
// Values: []*planpb.GenericValue{fieldValue},
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
// return expr, nil
|
||||
//}
|
||||
|
||||
func parseQueryExpr(schema *typeutil.SchemaHelper, exprStrNullable *string) (*planpb.Expr, error) {
|
||||
if exprStrNullable == nil {
|
||||
return nil, nil
|
||||
}
|
||||
exprStr := *exprStrNullable
|
||||
return parseQueryExprAdvanced(schema, exprStr)
|
||||
}
|
||||
|
||||
type ParserContext struct {
|
||||
schema *typeutil.SchemaHelper
|
||||
}
|
||||
|
||||
func parseQueryExprAdvanced(schema *typeutil.SchemaHelper, exprStr string) (*planpb.Expr, error) {
|
||||
ast, err := ant_parser.Parse(exprStr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
context := ParserContext{schema}
|
||||
|
||||
return context.parseExpr(&ast.Node)
|
||||
}
|
||||
|
||||
func (context *ParserContext) createColumnInfo(field *schemapb.FieldSchema) *planpb.ColumnInfo {
|
||||
return &planpb.ColumnInfo{
|
||||
FieldId: field.FieldID,
|
||||
DataType: field.DataType,
|
||||
}
|
||||
}
|
||||
|
||||
func createSingleOps(opStr string, reverse bool) planpb.RangeExpr_OpType {
|
||||
type OpType = planpb.RangeExpr_OpType
|
||||
var op planpb.RangeExpr_OpType
|
||||
if !reverse {
|
||||
switch opStr {
|
||||
case "<":
|
||||
op = planpb.RangeExpr_LessThan
|
||||
case ">":
|
||||
op = planpb.RangeExpr_GreaterThan
|
||||
case "<=":
|
||||
op = planpb.RangeExpr_LessEqual
|
||||
case ">=":
|
||||
op = planpb.RangeExpr_GreaterEqual
|
||||
case "==":
|
||||
op = planpb.RangeExpr_Equal
|
||||
case "!=":
|
||||
op = planpb.RangeExpr_NotEqual
|
||||
default:
|
||||
op = planpb.RangeExpr_Invalid
|
||||
}
|
||||
} else {
|
||||
switch opStr {
|
||||
case ">":
|
||||
op = planpb.RangeExpr_LessThan
|
||||
case "<":
|
||||
op = planpb.RangeExpr_GreaterThan
|
||||
case ">=":
|
||||
op = planpb.RangeExpr_LessEqual
|
||||
case "<=":
|
||||
op = planpb.RangeExpr_GreaterEqual
|
||||
case "==":
|
||||
op = planpb.RangeExpr_Equal
|
||||
case "!=":
|
||||
op = planpb.RangeExpr_NotEqual
|
||||
default:
|
||||
op = planpb.RangeExpr_Invalid
|
||||
}
|
||||
}
|
||||
return op
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleCmpExpr(node *ant_ast.BinaryNode) (*planpb.Expr, error) {
|
||||
idNode, leftOk := node.Left.(*ant_ast.IdentifierNode)
|
||||
if !leftOk {
|
||||
return nil, fmt.Errorf("compare require left to be identifier")
|
||||
}
|
||||
field, err := context.handleIdentifier(idNode)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
val, err := context.handleLeafValue(&node.Right, field.DataType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
op := createSingleOps(node.Operator, false)
|
||||
if op == planpb.RangeExpr_Invalid {
|
||||
return nil, fmt.Errorf("invalid binary operator %s", node.Operator)
|
||||
}
|
||||
|
||||
final := &planpb.Expr{
|
||||
Expr: &planpb.Expr_RangeExpr{
|
||||
RangeExpr: &planpb.RangeExpr{
|
||||
ColumnInfo: context.createColumnInfo(field),
|
||||
Ops: []planpb.RangeExpr_OpType{op},
|
||||
Values: []*planpb.GenericValue{val},
|
||||
},
|
||||
},
|
||||
}
|
||||
return final, nil
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleLogicalExpr(node *ant_ast.BinaryNode) (*planpb.Expr, error) {
|
||||
return nil, fmt.Errorf("unimplemented")
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleInExpr(node *ant_ast.BinaryNode) (*planpb.Expr, error) {
|
||||
return nil, fmt.Errorf("unimplemented")
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleBinaryExpr(node *ant_ast.BinaryNode) (*planpb.Expr, error) {
|
||||
// TODO
|
||||
switch node.Operator {
|
||||
case "<", "<=", ">", ">=", "==", "!=":
|
||||
return context.handleCmpExpr(node)
|
||||
case "and", "or":
|
||||
return context.handleLogicalExpr(node)
|
||||
case "in", "not in":
|
||||
return context.handleInExpr(node)
|
||||
}
|
||||
return nil, fmt.Errorf("unimplemented")
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleNotExpr(node *ant_ast.UnaryNode) (*planpb.Expr, error) {
|
||||
return nil, fmt.Errorf("unimplemented")
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleLeafValue(nodeRaw *ant_ast.Node, dataType schemapb.DataType) (gv *planpb.GenericValue, err error) {
|
||||
switch node := (*nodeRaw).(type) {
|
||||
case *ant_ast.FloatNode:
|
||||
if typeutil.IsFloatingType(dataType) {
|
||||
gv = &planpb.GenericValue{
|
||||
Val: &planpb.GenericValue_FloatVal{
|
||||
FloatVal: node.Value,
|
||||
},
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("type mismatch")
|
||||
}
|
||||
case *ant_ast.IntegerNode:
|
||||
if typeutil.IsFloatingType(dataType) {
|
||||
gv = &planpb.GenericValue{
|
||||
Val: &planpb.GenericValue_FloatVal{
|
||||
FloatVal: float64(node.Value),
|
||||
},
|
||||
}
|
||||
} else if typeutil.IsIntergerType(dataType) {
|
||||
gv = &planpb.GenericValue{
|
||||
Val: &planpb.GenericValue_Int64Val{
|
||||
Int64Val: int64(node.Value),
|
||||
},
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("type mismatch")
|
||||
}
|
||||
case *ant_ast.BoolNode:
|
||||
if typeutil.IsFloatingType(dataType) {
|
||||
gv = &planpb.GenericValue{
|
||||
Val: &planpb.GenericValue_BoolVal{
|
||||
BoolVal: node.Value,
|
||||
},
|
||||
}
|
||||
} else {
|
||||
return nil, fmt.Errorf("type mismatch")
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported leaf node")
|
||||
}
|
||||
|
||||
return gv, nil
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleIdentifier(node *ant_ast.IdentifierNode) (*schemapb.FieldSchema, error) {
|
||||
fieldName := node.Value
|
||||
field, err := context.schema.GetFieldFromName(fieldName)
|
||||
return field, err
|
||||
}
|
||||
|
||||
func (context *ParserContext) handleUnaryExpr(node *ant_ast.UnaryNode) (*planpb.Expr, error) {
|
||||
switch node.Operator {
|
||||
case "!", "not":
|
||||
return context.handleNotExpr(node)
|
||||
default:
|
||||
return nil, fmt.Errorf("invalid unary operator(%s)", node.Operator)
|
||||
}
|
||||
}
|
||||
|
||||
func (context *ParserContext) parseExpr(nodeRaw *ant_ast.Node) (*planpb.Expr, error) {
|
||||
switch node := (*nodeRaw).(type) {
|
||||
case *ant_ast.IdentifierNode,
|
||||
*ant_ast.FloatNode,
|
||||
*ant_ast.IntegerNode,
|
||||
*ant_ast.BoolNode:
|
||||
return nil, fmt.Errorf("scalar expr is not supported yet")
|
||||
case *ant_ast.UnaryNode:
|
||||
expr, err := context.handleUnaryExpr(node)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return expr, nil
|
||||
case *ant_ast.BinaryNode:
|
||||
return context.handleBinaryExpr(node)
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported node (%s)", node.Type().String())
|
||||
}
|
||||
}
|
||||
|
||||
func CreateQueryPlan(schemaPb *schemapb.CollectionSchema, exprStrNullable *string, vectorFieldName string, queryInfo *planpb.QueryInfo) (*planpb.PlanNode, error) {
|
||||
schema, err := typeutil.CreateSchemaHelper(schemaPb)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
expr, err := parseQueryExpr(schema, exprStrNullable)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vectorField, err := schema.GetFieldFromName(vectorFieldName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
fieldID := vectorField.FieldID
|
||||
dataType := vectorField.DataType
|
||||
|
||||
if !typeutil.IsVectorType(dataType) {
|
||||
return nil, fmt.Errorf("field (%s) to search is not of vector data type", vectorFieldName)
|
||||
}
|
||||
|
||||
planNode := &planpb.PlanNode{
|
||||
Node: &planpb.PlanNode_VectorAnns{
|
||||
VectorAnns: &planpb.VectorANNS{
|
||||
IsBinary: dataType == schemapb.DataType_BinaryVector,
|
||||
Predicates: expr,
|
||||
QueryInfo: queryInfo,
|
||||
PlaceholderTag: "$0",
|
||||
FieldId: fieldID,
|
||||
},
|
||||
},
|
||||
}
|
||||
return planNode, nil
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package proxynode
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
ant_ast "github.com/antonmedv/expr/ast"
|
||||
ant_parser "github.com/antonmedv/expr/parser"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/proto/planpb"
|
||||
"github.com/milvus-io/milvus/internal/proto/schemapb"
|
||||
"github.com/milvus-io/milvus/internal/util/typeutil"
|
||||
)
|
||||
|
||||
func newTestSchema() *schemapb.CollectionSchema {
|
||||
return &schemapb.CollectionSchema{
|
||||
Name: "test",
|
||||
Description: "schema for test used",
|
||||
AutoID: true,
|
||||
Fields: []*schemapb.FieldSchema{
|
||||
{FieldID: 0, Name: "FieldID", IsPrimaryKey: false, Description: "field no.1", DataType: schemapb.DataType_Int64},
|
||||
{FieldID: 101, Name: "vectorField", IsPrimaryKey: false, Description: "field no.2", DataType: schemapb.DataType_FloatVector},
|
||||
{FieldID: 100, Name: "int64Field", IsPrimaryKey: false, Description: "field no.1", DataType: schemapb.DataType_Int64},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseQueryExpr_Naive(t *testing.T) {
|
||||
exprStr := "int64Field > 3"
|
||||
schemaPb := newTestSchema()
|
||||
schema, err := typeutil.CreateSchemaHelper(schemaPb)
|
||||
assert.Nil(t, err)
|
||||
exprProto, err := parseQueryExpr(schema, &exprStr)
|
||||
assert.Nil(t, err)
|
||||
str := proto.MarshalTextString(exprProto)
|
||||
println(str)
|
||||
}
|
||||
|
||||
func TestParsePlanNode_Naive(t *testing.T) {
|
||||
exprStr := "int64Field > 3"
|
||||
schema := newTestSchema()
|
||||
queryInfo := &planpb.QueryInfo{
|
||||
Topk: 10,
|
||||
MetricType: "L2",
|
||||
SearchParams: "{\"nprobe\": 10}",
|
||||
}
|
||||
|
||||
// Note: use pointer to string to represent nullable string
|
||||
// TODO: change it to better solution
|
||||
planProto, err := CreateQueryPlan(schema, &exprStr, "vectorField", queryInfo)
|
||||
|
||||
assert.Nil(t, err)
|
||||
dbgStr := proto.MarshalTextString(planProto)
|
||||
println(dbgStr)
|
||||
}
|
||||
|
||||
func TestExternalParser(t *testing.T) {
|
||||
ast, err := ant_parser.Parse("!(1 < a < 2 or b in [1, 2, 3]) or (c < 3 and b > 5) or ")
|
||||
|
||||
var node ant_ast.Node = nil
|
||||
if node == nil {
|
||||
// TODO
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
|
||||
println(ast.Node.Location().Column)
|
||||
}
|
|
@ -21,6 +21,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/proto/planpb"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/util/funcutil"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
@ -45,6 +47,10 @@ const (
|
|||
CreateCollectionTaskName = "CreateCollectionTask"
|
||||
DropCollectionTaskName = "DropCollectionTask"
|
||||
SearchTaskName = "SearchTask"
|
||||
AnnsFieldKey = "anns_field"
|
||||
TopKKey = "topk"
|
||||
MetricTypeKey = "metric_type"
|
||||
SearchParamsKey = "params"
|
||||
HasCollectionTaskName = "HasCollectionTask"
|
||||
DescribeCollectionTaskName = "DescribeCollectionTask"
|
||||
GetCollectionStatisticsTaskName = "GetCollectionStatisticsTask"
|
||||
|
@ -556,6 +562,54 @@ func (st *SearchTask) PreExecute(ctx context.Context) error {
|
|||
}
|
||||
}
|
||||
st.Base.MsgType = commonpb.MsgType_Search
|
||||
|
||||
var dsl string
|
||||
dsl = st.query.Dsl
|
||||
if st.query.GetDslType() == commonpb.DslType_BoolExprV1 {
|
||||
schema, err := globalMetaCache.GetCollectionSchema(ctx, collectionName)
|
||||
if err != nil { // err is not nil if collection not exists
|
||||
return err
|
||||
}
|
||||
|
||||
annsField, err := GetAttrByKeyFromRepeatedKV(AnnsFieldKey, st.query.SearchParams)
|
||||
if err != nil {
|
||||
return errors.New(AnnsFieldKey + " not found in search_params")
|
||||
}
|
||||
|
||||
topKStr, err := GetAttrByKeyFromRepeatedKV(TopKKey, st.query.SearchParams)
|
||||
if err != nil {
|
||||
return errors.New(TopKKey + " not found in search_params")
|
||||
}
|
||||
topK, err := strconv.Atoi(topKStr)
|
||||
if err != nil {
|
||||
return errors.New(TopKKey + " " + topKStr + " is not invalid")
|
||||
}
|
||||
|
||||
metricType, err := GetAttrByKeyFromRepeatedKV(MetricTypeKey, st.query.SearchParams)
|
||||
if err != nil {
|
||||
return errors.New(MetricTypeKey + " not found in search_params")
|
||||
}
|
||||
|
||||
searchParams, err := GetAttrByKeyFromRepeatedKV(SearchParamsKey, st.query.SearchParams)
|
||||
if err != nil {
|
||||
return errors.New(SearchParamsKey + " not found in search_params")
|
||||
}
|
||||
|
||||
queryInfo := &planpb.QueryInfo{
|
||||
Topk: int64(topK),
|
||||
MetricType: metricType,
|
||||
SearchParams: searchParams,
|
||||
}
|
||||
|
||||
plan, err := CreateQueryPlan(schema, &st.query.Dsl, annsField, queryInfo)
|
||||
if err != nil {
|
||||
return errors.New("invalid expression: " + st.query.Dsl)
|
||||
}
|
||||
|
||||
dsl = proto.MarshalTextString(plan)
|
||||
st.query.Dsl = dsl
|
||||
}
|
||||
|
||||
queryBytes, err := proto.Marshal(st.query)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -601,7 +655,7 @@ func (st *SearchTask) PreExecute(ctx context.Context) error {
|
|||
}
|
||||
}
|
||||
|
||||
st.Dsl = st.query.Dsl
|
||||
st.Dsl = dsl
|
||||
st.PlaceholderGroup = st.query.PlaceholderGroup
|
||||
|
||||
return nil
|
||||
|
|
|
@ -13,16 +13,17 @@ package proxynode
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/util/funcutil"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/log"
|
||||
"github.com/milvus-io/milvus/internal/proto/commonpb"
|
||||
"github.com/milvus-io/milvus/internal/util/funcutil"
|
||||
"github.com/milvus-io/milvus/internal/util/retry"
|
||||
)
|
||||
|
||||
|
@ -92,3 +93,13 @@ func CheckStrByValues(params map[string]string, key string, container []string)
|
|||
|
||||
return funcutil.SliceContain(container, value)
|
||||
}
|
||||
|
||||
func GetAttrByKeyFromRepeatedKV(key string, kvs []*commonpb.KeyValuePair) (string, error) {
|
||||
for _, kv := range kvs {
|
||||
if kv.Key == key {
|
||||
return kv.Value, nil
|
||||
}
|
||||
}
|
||||
|
||||
return "", errors.New("key " + key + " not found")
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@ import (
|
|||
"strconv"
|
||||
"testing"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/proto/commonpb"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/jarcoal/httpmock"
|
||||
|
@ -128,3 +130,29 @@ func TestCheckStrByValues(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetAttrByKeyFromRepeatedKV(t *testing.T) {
|
||||
kvs := []*commonpb.KeyValuePair{
|
||||
{Key: "Key1", Value: "Value1"},
|
||||
{Key: "Key2", Value: "Value2"},
|
||||
{Key: "Key3", Value: "Value3"},
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
key string
|
||||
kvs []*commonpb.KeyValuePair
|
||||
value string
|
||||
errIsNil bool
|
||||
}{
|
||||
{"Key1", kvs, "Value1", true},
|
||||
{"Key2", kvs, "Value2", true},
|
||||
{"Key3", kvs, "Value3", true},
|
||||
{"other", kvs, "", false},
|
||||
}
|
||||
|
||||
for _, test := range cases {
|
||||
value, err := GetAttrByKeyFromRepeatedKV(test.key, test.kvs)
|
||||
assert.Equal(t, test.value, value)
|
||||
assert.Equal(t, test.errIsNil, err == nil)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,8 +36,9 @@ func createPlan(col Collection, dsl string) (*Plan, error) {
|
|||
var cPlan C.CPlan
|
||||
status := C.CreatePlan(col.collectionPtr, cDsl, &cPlan)
|
||||
|
||||
if err := HandleCStatus(&status, "Create Plan failed"); err != nil {
|
||||
return nil, err
|
||||
err1 := HandleCStatus(&status, "Create Plan failed")
|
||||
if err1 != nil {
|
||||
return nil, err1
|
||||
}
|
||||
|
||||
var newPlan = &Plan{cPlan: cPlan}
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
package typeutil
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/milvus-io/milvus/internal/proto/schemapb"
|
||||
|
@ -57,3 +59,71 @@ func EstimateSizePerRecord(schema *schemapb.CollectionSchema) (int, error) {
|
|||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
type SchemaHelper struct {
|
||||
schema *schemapb.CollectionSchema
|
||||
nameOffset map[string]int
|
||||
idOffset map[int64]int
|
||||
}
|
||||
|
||||
func CreateSchemaHelper(schema *schemapb.CollectionSchema) (*SchemaHelper, error) {
|
||||
if schema == nil {
|
||||
return nil, errors.New("schema is nil")
|
||||
}
|
||||
schemaHelper := SchemaHelper{schema: schema, nameOffset: make(map[string]int), idOffset: make(map[int64]int)}
|
||||
for offset, field := range schema.Fields {
|
||||
if _, ok := schemaHelper.nameOffset[field.Name]; ok {
|
||||
return nil, errors.New("duplicated fieldName: " + field.Name)
|
||||
}
|
||||
if _, ok := schemaHelper.idOffset[field.FieldID]; ok {
|
||||
return nil, errors.New("duplicated fieldID: " + strconv.FormatInt(field.FieldID, 10))
|
||||
}
|
||||
schemaHelper.nameOffset[field.Name] = offset
|
||||
schemaHelper.idOffset[field.FieldID] = offset
|
||||
}
|
||||
return &schemaHelper, nil
|
||||
}
|
||||
|
||||
func (helper *SchemaHelper) GetFieldFromName(fieldName string) (*schemapb.FieldSchema, error) {
|
||||
offset, ok := helper.nameOffset[fieldName]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("fieldName(%s) not found", fieldName)
|
||||
}
|
||||
return helper.schema.Fields[offset], nil
|
||||
}
|
||||
|
||||
func (helper *SchemaHelper) GetFieldFromID(fieldID int64) (*schemapb.FieldSchema, error) {
|
||||
offset, ok := helper.idOffset[fieldID]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("fieldName(%d) not found", fieldID)
|
||||
}
|
||||
return helper.schema.Fields[offset], nil
|
||||
}
|
||||
|
||||
func IsVectorType(dataType schemapb.DataType) bool {
|
||||
switch dataType {
|
||||
case schemapb.DataType_FloatVector, schemapb.DataType_BinaryVector:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func IsIntergerType(dataType schemapb.DataType) bool {
|
||||
switch dataType {
|
||||
case schemapb.DataType_Int8, schemapb.DataType_Int16,
|
||||
schemapb.DataType_Int32, schemapb.DataType_Int64:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func IsFloatingType(dataType schemapb.DataType) bool {
|
||||
switch dataType {
|
||||
case schemapb.DataType_Float, schemapb.DataType_Double:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ mkdir -p proxypb
|
|||
mkdir -p indexpb
|
||||
mkdir -p datapb
|
||||
mkdir -p querypb
|
||||
mkdir -p planpb
|
||||
|
||||
${protoc} --go_out=plugins=grpc,paths=source_relative:./commonpb common.proto
|
||||
${protoc} --go_out=plugins=grpc,paths=source_relative:./schemapb schema.proto
|
||||
|
@ -49,5 +50,6 @@ ${protoc} --go_out=plugins=grpc,paths=source_relative:./proxypb proxy_service.pr
|
|||
${protoc} --go_out=plugins=grpc,paths=source_relative:./indexpb index_service.proto
|
||||
${protoc} --go_out=plugins=grpc,paths=source_relative:./datapb data_service.proto
|
||||
${protoc} --go_out=plugins=grpc,paths=source_relative:./querypb query_service.proto
|
||||
${protoc} --go_out=plugins=grpc,paths=source_relative:./planpb plan.proto
|
||||
|
||||
popd
|
||||
|
|
Loading…
Reference in New Issue