Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
de494c1a
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
de494c1a
编写于
7月 26, 2019
作者:
G
groot
浏览文件
操作
浏览文件
下载
差异文件
MS-275 Avoid sqlite logic error excetion
Former-commit-id: f56807e93c967b5d33e26663d60c517f4a8a3f75
上级
4e060d79
49c86286
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
84 addition
and
43 deletion
+84
-43
CHANGELOGS.md
CHANGELOGS.md
+1
-0
ci/main_jenkinsfile
ci/main_jenkinsfile
+1
-1
ci/main_jenkinsfile_no_ut
ci/main_jenkinsfile_no_ut
+1
-1
ci/nightly_main_jenkinsfile
ci/nightly_main_jenkinsfile
+1
-1
cpp/CHANGELOG.md
cpp/CHANGELOG.md
+1
-0
cpp/cmake/ThirdPartyPackages.cmake
cpp/cmake/ThirdPartyPackages.cmake
+2
-5
cpp/src/db/FaissExecutionEngine.cpp
cpp/src/db/FaissExecutionEngine.cpp
+48
-25
cpp/src/db/FaissExecutionEngine.h
cpp/src/db/FaissExecutionEngine.h
+29
-10
未找到文件。
CHANGELOGS.md
浏览文件 @
de494c1a
...
@@ -18,3 +18,4 @@ Please mark all change in change log and use the ticket from JIRA.
...
@@ -18,3 +18,4 @@ Please mark all change in change log and use the ticket from JIRA.
-
MS-161 - Add CI / CD Module to Milvus Project
-
MS-161 - Add CI / CD Module to Milvus Project
-
MS-202 - Add Milvus Jenkins project email notification
-
MS-202 - Add Milvus Jenkins project email notification
-
MS-215 - Add Milvus cluster CI/CD groovy file
-
MS-215 - Add Milvus cluster CI/CD groovy file
-
MS-277 - Update CUDA Version to V10.1
ci/main_jenkinsfile
浏览文件 @
de494c1a
...
@@ -35,7 +35,7 @@ pipeline {
...
@@ -35,7 +35,7 @@ pipeline {
defaultContainer 'jnlp'
defaultContainer 'jnlp'
containerTemplate {
containerTemplate {
name 'milvus-build-env'
name 'milvus-build-env'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
1
'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
2
'
ttyEnabled true
ttyEnabled true
command 'cat'
command 'cat'
}
}
...
...
ci/main_jenkinsfile_no_ut
浏览文件 @
de494c1a
...
@@ -35,7 +35,7 @@ pipeline {
...
@@ -35,7 +35,7 @@ pipeline {
defaultContainer 'jnlp'
defaultContainer 'jnlp'
containerTemplate {
containerTemplate {
name 'milvus-build-env'
name 'milvus-build-env'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
1
'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
2
'
ttyEnabled true
ttyEnabled true
command 'cat'
command 'cat'
}
}
...
...
ci/nightly_main_jenkinsfile
浏览文件 @
de494c1a
...
@@ -35,7 +35,7 @@ pipeline {
...
@@ -35,7 +35,7 @@ pipeline {
defaultContainer 'jnlp'
defaultContainer 'jnlp'
containerTemplate {
containerTemplate {
name 'milvus-build-env'
name 'milvus-build-env'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
1
'
image 'registry.zilliz.com/milvus/milvus-build-env:v0.1
2
'
ttyEnabled true
ttyEnabled true
command 'cat'
command 'cat'
}
}
...
...
cpp/CHANGELOG.md
浏览文件 @
de494c1a
...
@@ -39,6 +39,7 @@ Please mark all change in change log and use the ticket from JIRA.
...
@@ -39,6 +39,7 @@ Please mark all change in change log and use the ticket from JIRA.
-
MS-261 - Update faiss version to 1.5.3 and add BUILD_FAISS_WITH_MKL as an option
-
MS-261 - Update faiss version to 1.5.3 and add BUILD_FAISS_WITH_MKL as an option
-
MS-266 - Improve topk reduce time by using multi-threads
-
MS-266 - Improve topk reduce time by using multi-threads
-
MS-275 - Avoid sqlite logic error excetion
-
MS-275 - Avoid sqlite logic error excetion
-
MS-278 - add IndexStatsHelper
## New Feature
## New Feature
-
MS-180 - Add new mem manager
-
MS-180 - Add new mem manager
...
...
cpp/cmake/ThirdPartyPackages.cmake
浏览文件 @
de494c1a
...
@@ -752,10 +752,7 @@ macro(build_faiss)
...
@@ -752,10 +752,7 @@ macro(build_faiss)
if
(
${
MILVUS_WITH_FAISS_GPU_VERSION
}
STREQUAL
"ON"
)
if
(
${
MILVUS_WITH_FAISS_GPU_VERSION
}
STREQUAL
"ON"
)
set
(
FAISS_CONFIGURE_ARGS
${
FAISS_CONFIGURE_ARGS
}
set
(
FAISS_CONFIGURE_ARGS
${
FAISS_CONFIGURE_ARGS
}
"--with-cuda=
${
CUDA_TOOLKIT_ROOT_DIR
}
"
"--with-cuda=
${
CUDA_TOOLKIT_ROOT_DIR
}
"
"--with-cuda-arch=
\"
-gencode=arch=compute_35,code=sm_35
\"
"
"--with-cuda-arch=-gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_61,code=sm_61 -gencode=arch=compute_75,code=sm_75"
"--with-cuda-arch=
\"
-gencode=arch=compute_52,code=sm_52
\"
"
"--with-cuda-arch=
\"
-gencode=arch=compute_60,code=sm_60
\"
"
"--with-cuda-arch=
\"
-gencode=arch=compute_61,code=sm_61
\"
"
)
)
else
()
else
()
set
(
FAISS_CONFIGURE_ARGS
${
FAISS_CONFIGURE_ARGS
}
--without-cuda
)
set
(
FAISS_CONFIGURE_ARGS
${
FAISS_CONFIGURE_ARGS
}
--without-cuda
)
...
@@ -769,7 +766,7 @@ macro(build_faiss)
...
@@ -769,7 +766,7 @@ macro(build_faiss)
"./configure"
"./configure"
${
FAISS_CONFIGURE_ARGS
}
${
FAISS_CONFIGURE_ARGS
}
BUILD_COMMAND
BUILD_COMMAND
${
MAKE
}
${
MAKE_BUILD_ARGS
}
${
MAKE
}
${
MAKE_BUILD_ARGS
}
VERBOSE=1
BUILD_IN_SOURCE
BUILD_IN_SOURCE
1
1
INSTALL_COMMAND
INSTALL_COMMAND
...
...
cpp/src/db/FaissExecutionEngine.cpp
浏览文件 @
de494c1a
...
@@ -30,10 +30,31 @@ std::string GetMetricType() {
...
@@ -30,10 +30,31 @@ std::string GetMetricType() {
}
}
}
}
std
::
string
IndexStatsHelper
::
ToString
(
const
std
::
string
&
prefix
)
const
{
return
""
;
}
void
IndexStatsHelper
::
Reset
()
const
{
faiss
::
indexIVF_stats
.
reset
();
}
std
::
string
FaissIndexIVFStatsHelper
::
ToString
(
const
std
::
string
&
prefix
)
const
{
std
::
stringstream
ss
;
ss
<<
prefix
;
ss
<<
identifier_
<<
":"
;
ss
<<
" NQ="
<<
faiss
::
indexIVF_stats
.
nq
;
ss
<<
" NL="
<<
faiss
::
indexIVF_stats
.
nlist
;
ss
<<
" ND="
<<
faiss
::
indexIVF_stats
.
ndis
;
ss
<<
" NH="
<<
faiss
::
indexIVF_stats
.
nheap_updates
;
ss
<<
" Q="
<<
faiss
::
indexIVF_stats
.
quantization_time
;
ss
<<
" S="
<<
faiss
::
indexIVF_stats
.
search_time
;
return
ss
.
str
();
}
FaissExecutionEngine
::
FaissExecutionEngine
(
uint16_t
dimension
,
FaissExecutionEngine
::
FaissExecutionEngine
(
uint16_t
dimension
,
const
std
::
string
&
location
,
const
std
::
string
&
location
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
raw_index_type
)
const
std
::
string
&
raw_index_type
)
:
location_
(
location
),
:
location_
(
location
),
build_index_type_
(
build_index_type
),
build_index_type_
(
build_index_type
),
raw_index_type_
(
raw_index_type
)
{
raw_index_type_
(
raw_index_type
)
{
...
@@ -44,9 +65,9 @@ FaissExecutionEngine::FaissExecutionEngine(uint16_t dimension,
...
@@ -44,9 +65,9 @@ FaissExecutionEngine::FaissExecutionEngine(uint16_t dimension,
}
}
FaissExecutionEngine
::
FaissExecutionEngine
(
std
::
shared_ptr
<
faiss
::
Index
>
index
,
FaissExecutionEngine
::
FaissExecutionEngine
(
std
::
shared_ptr
<
faiss
::
Index
>
index
,
const
std
::
string
&
location
,
const
std
::
string
&
location
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
raw_index_type
)
const
std
::
string
&
raw_index_type
)
:
pIndex_
(
index
),
:
pIndex_
(
index
),
location_
(
location
),
location_
(
location
),
build_index_type_
(
build_index_type
),
build_index_type_
(
build_index_type
),
...
@@ -59,11 +80,11 @@ Status FaissExecutionEngine::AddWithIds(long n, const float *xdata, const long *
...
@@ -59,11 +80,11 @@ Status FaissExecutionEngine::AddWithIds(long n, const float *xdata, const long *
}
}
size_t
FaissExecutionEngine
::
Count
()
const
{
size_t
FaissExecutionEngine
::
Count
()
const
{
return
(
size_t
)(
pIndex_
->
ntotal
);
return
(
size_t
)
(
pIndex_
->
ntotal
);
}
}
size_t
FaissExecutionEngine
::
Size
()
const
{
size_t
FaissExecutionEngine
::
Size
()
const
{
return
(
size_t
)
(
Count
()
*
pIndex_
->
d
)
*
sizeof
(
float
);
return
(
size_t
)
(
Count
()
*
pIndex_
->
d
)
*
sizeof
(
float
);
}
}
size_t
FaissExecutionEngine
::
Dimension
()
const
{
size_t
FaissExecutionEngine
::
Dimension
()
const
{
...
@@ -99,12 +120,12 @@ Status FaissExecutionEngine::Load(bool to_cache) {
...
@@ -99,12 +120,12 @@ Status FaissExecutionEngine::Load(bool to_cache) {
server
::
Metrics
::
GetInstance
().
FaissDiskLoadSizeBytesHistogramObserve
(
total_size
);
server
::
Metrics
::
GetInstance
().
FaissDiskLoadSizeBytesHistogramObserve
(
total_size
);
// server::Metrics::GetInstance().FaissDiskLoadIOSpeedHistogramObserve(total_size/double(total_time));
// server::Metrics::GetInstance().FaissDiskLoadIOSpeedHistogramObserve(total_size/double(total_time));
server
::
Metrics
::
GetInstance
().
FaissDiskLoadIOSpeedGaugeSet
(
total_size
/
double
(
total_time
));
server
::
Metrics
::
GetInstance
().
FaissDiskLoadIOSpeedGaugeSet
(
total_size
/
double
(
total_time
));
}
}
return
Status
::
OK
();
return
Status
::
OK
();
}
}
Status
FaissExecutionEngine
::
Merge
(
const
std
::
string
&
location
)
{
Status
FaissExecutionEngine
::
Merge
(
const
std
::
string
&
location
)
{
if
(
location
==
location_
)
{
if
(
location
==
location_
)
{
return
Status
::
Error
(
"Cannot Merge Self"
);
return
Status
::
Error
(
"Cannot Merge Self"
);
}
}
...
@@ -114,14 +135,14 @@ Status FaissExecutionEngine::Merge(const std::string& location) {
...
@@ -114,14 +135,14 @@ Status FaissExecutionEngine::Merge(const std::string& location) {
if
(
!
to_merge
)
{
if
(
!
to_merge
)
{
to_merge
=
read_index
(
location
);
to_merge
=
read_index
(
location
);
}
}
auto
file_index
=
dynamic_cast
<
faiss
::
IndexIDMap
*>
(
to_merge
->
data
().
get
());
auto
file_index
=
dynamic_cast
<
faiss
::
IndexIDMap
*>
(
to_merge
->
data
().
get
());
pIndex_
->
add_with_ids
(
file_index
->
ntotal
,
dynamic_cast
<
faiss
::
IndexFlat
*>
(
file_index
->
index
)
->
xb
.
data
(),
pIndex_
->
add_with_ids
(
file_index
->
ntotal
,
dynamic_cast
<
faiss
::
IndexFlat
*>
(
file_index
->
index
)
->
xb
.
data
(),
file_index
->
id_map
.
data
());
file_index
->
id_map
.
data
());
return
Status
::
OK
();
return
Status
::
OK
();
}
}
ExecutionEnginePtr
ExecutionEnginePtr
FaissExecutionEngine
::
BuildIndex
(
const
std
::
string
&
location
)
{
FaissExecutionEngine
::
BuildIndex
(
const
std
::
string
&
location
)
{
ENGINE_LOG_DEBUG
<<
"Build index file: "
<<
location
<<
" from: "
<<
location_
;
ENGINE_LOG_DEBUG
<<
"Build index file: "
<<
location
<<
" from: "
<<
location_
;
auto
opd
=
std
::
make_shared
<
Operand
>
();
auto
opd
=
std
::
make_shared
<
Operand
>
();
...
@@ -130,10 +151,10 @@ FaissExecutionEngine::BuildIndex(const std::string& location) {
...
@@ -130,10 +151,10 @@ FaissExecutionEngine::BuildIndex(const std::string& location) {
opd
->
metric_type
=
GetMetricType
();
opd
->
metric_type
=
GetMetricType
();
IndexBuilderPtr
pBuilder
=
GetIndexBuilder
(
opd
);
IndexBuilderPtr
pBuilder
=
GetIndexBuilder
(
opd
);
auto
from_index
=
dynamic_cast
<
faiss
::
IndexIDMap
*>
(
pIndex_
.
get
());
auto
from_index
=
dynamic_cast
<
faiss
::
IndexIDMap
*>
(
pIndex_
.
get
());
auto
index
=
pBuilder
->
build_all
(
from_index
->
ntotal
,
auto
index
=
pBuilder
->
build_all
(
from_index
->
ntotal
,
dynamic_cast
<
faiss
::
IndexFlat
*>
(
from_index
->
index
)
->
xb
.
data
(),
dynamic_cast
<
faiss
::
IndexFlat
*>
(
from_index
->
index
)
->
xb
.
data
(),
from_index
->
id_map
.
data
());
from_index
->
id_map
.
data
());
ExecutionEnginePtr
new_ee
(
new
FaissExecutionEngine
(
index
->
data
(),
location
,
build_index_type_
,
raw_index_type_
));
ExecutionEnginePtr
new_ee
(
new
FaissExecutionEngine
(
index
->
data
(),
location
,
build_index_type_
,
raw_index_type_
));
...
@@ -148,18 +169,21 @@ Status FaissExecutionEngine::Search(long n,
...
@@ -148,18 +169,21 @@ Status FaissExecutionEngine::Search(long n,
auto
start_time
=
METRICS_NOW_TIME
;
auto
start_time
=
METRICS_NOW_TIME
;
std
::
shared_ptr
<
faiss
::
IndexIVF
>
ivf_index
=
std
::
dynamic_pointer_cast
<
faiss
::
IndexIVF
>
(
pIndex_
);
std
::
shared_ptr
<
faiss
::
IndexIVF
>
ivf_index
=
std
::
dynamic_pointer_cast
<
faiss
::
IndexIVF
>
(
pIndex_
);
if
(
ivf_index
)
{
if
(
ivf_index
)
{
std
::
string
stats_prefix
=
"K="
+
std
::
to_string
(
k
)
+
":"
;
ENGINE_LOG_DEBUG
<<
"Searching index type: "
<<
build_index_type_
<<
" nProbe: "
<<
nprobe_
;
ENGINE_LOG_DEBUG
<<
"Searching index type: "
<<
build_index_type_
<<
" nProbe: "
<<
nprobe_
;
ivf_index
->
nprobe
=
nprobe_
;
ivf_index
->
nprobe
=
nprobe_
;
ivf_stats_helper_
.
Reset
();
ivf_index
->
search
(
n
,
data
,
k
,
distances
,
labels
);
ivf_index
->
search
(
n
,
data
,
k
,
distances
,
labels
);
ENGINE_LOG_INFO
<<
ivf_stats_helper_
.
ToString
(
stats_prefix
);
}
else
{
}
else
{
ENGINE_LOG_DEBUG
<<
"Searching raw file"
;
ENGINE_LOG_DEBUG
<<
"Searching raw file"
;
pIndex_
->
search
(
n
,
data
,
k
,
distances
,
labels
);
pIndex_
->
search
(
n
,
data
,
k
,
distances
,
labels
);
}
}
auto
end_time
=
METRICS_NOW_TIME
;
auto
end_time
=
METRICS_NOW_TIME
;
auto
total_time
=
METRICS_MICROSECONDS
(
start_time
,
end_time
);
auto
total_time
=
METRICS_MICROSECONDS
(
start_time
,
end_time
);
server
::
Metrics
::
GetInstance
().
QueryIndexTypePerSecondSet
(
build_index_type_
,
double
(
n
)
/
double
(
total_time
));
server
::
Metrics
::
GetInstance
().
QueryIndexTypePerSecondSet
(
build_index_type_
,
double
(
n
)
/
double
(
total_time
));
return
Status
::
OK
();
return
Status
::
OK
();
}
}
...
@@ -173,17 +197,16 @@ Status FaissExecutionEngine::Cache() {
...
@@ -173,17 +197,16 @@ Status FaissExecutionEngine::Cache() {
Status
FaissExecutionEngine
::
Init
()
{
Status
FaissExecutionEngine
::
Init
()
{
if
(
build_index_type_
==
BUILD_INDEX_TYPE_IVF
||
if
(
build_index_type_
==
BUILD_INDEX_TYPE_IVF
||
build_index_type_
==
BUILD_INDEX_TYPE_IVFSQ8
)
{
build_index_type_
==
BUILD_INDEX_TYPE_IVFSQ8
)
{
using
namespace
zilliz
::
milvus
::
server
;
using
namespace
zilliz
::
milvus
::
server
;
ServerConfig
&
config
=
ServerConfig
::
GetInstance
();
ServerConfig
&
config
=
ServerConfig
::
GetInstance
();
ConfigNode
engine_config
=
config
.
GetConfig
(
CONFIG_ENGINE
);
ConfigNode
engine_config
=
config
.
GetConfig
(
CONFIG_ENGINE
);
nprobe_
=
engine_config
.
GetInt32Value
(
CONFIG_NPROBE
,
1000
);
nprobe_
=
engine_config
.
GetInt32Value
(
CONFIG_NPROBE
,
1000
);
nlist_
=
engine_config
.
GetInt32Value
(
CONFIG_NLIST
,
16384
);
nlist_
=
engine_config
.
GetInt32Value
(
CONFIG_NLIST
,
16384
);
}
else
if
(
build_index_type_
==
BUILD_INDEX_TYPE_IDMAP
)
{
}
else
if
(
build_index_type_
==
BUILD_INDEX_TYPE_IDMAP
)
{
;
;
}
else
{
}
else
{
return
Status
::
Error
(
"Wrong index type: "
,
build_index_type_
);
return
Status
::
Error
(
"Wrong index type: "
,
build_index_type_
);
}
}
...
...
cpp/src/db/FaissExecutionEngine.h
浏览文件 @
de494c1a
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
#include <memory>
#include <memory>
#include <string>
#include <string>
namespace
zilliz
{
namespace
zilliz
{
namespace
milvus
{
namespace
milvus
{
namespace
engine
{
namespace
engine
{
...
@@ -19,18 +20,35 @@ const static std::string BUILD_INDEX_TYPE_IDMAP = "IDMap";
...
@@ -19,18 +20,35 @@ const static std::string BUILD_INDEX_TYPE_IDMAP = "IDMap";
const
static
std
::
string
BUILD_INDEX_TYPE_IVF
=
"IVF"
;
const
static
std
::
string
BUILD_INDEX_TYPE_IVF
=
"IVF"
;
const
static
std
::
string
BUILD_INDEX_TYPE_IVFSQ8
=
"IVFSQ8"
;
const
static
std
::
string
BUILD_INDEX_TYPE_IVFSQ8
=
"IVFSQ8"
;
class
IndexStatsHelper
{
public:
using
Ptr
=
std
::
shared_ptr
<
IndexStatsHelper
>
;
virtual
std
::
string
ToString
(
const
std
::
string
&
prefix
=
""
)
const
;
virtual
void
Reset
()
const
;
virtual
~
IndexStatsHelper
()
{}
};
class
FaissIndexIVFStatsHelper
:
public
IndexStatsHelper
{
public:
std
::
string
ToString
(
const
std
::
string
&
prefix
=
""
)
const
override
;
private:
const
std
::
string
identifier_
=
BUILD_INDEX_TYPE_IVF
;
};
class
FaissExecutionEngine
:
public
ExecutionEngine
{
class
FaissExecutionEngine
:
public
ExecutionEngine
{
public:
public:
FaissExecutionEngine
(
uint16_t
dimension
,
FaissExecutionEngine
(
uint16_t
dimension
,
const
std
::
string
&
location
,
const
std
::
string
&
location
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
raw_index_type
);
const
std
::
string
&
raw_index_type
);
FaissExecutionEngine
(
std
::
shared_ptr
<
faiss
::
Index
>
index
,
FaissExecutionEngine
(
std
::
shared_ptr
<
faiss
::
Index
>
index
,
const
std
::
string
&
location
,
const
std
::
string
&
location
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
build_index_type
,
const
std
::
string
&
raw_index_type
);
const
std
::
string
&
raw_index_type
);
Status
AddWithIds
(
long
n
,
const
float
*
xdata
,
const
long
*
xids
)
override
;
Status
AddWithIds
(
long
n
,
const
float
*
xdata
,
const
long
*
xids
)
override
;
...
@@ -46,7 +64,7 @@ public:
...
@@ -46,7 +64,7 @@ public:
Status
Load
(
bool
to_cache
)
override
;
Status
Load
(
bool
to_cache
)
override
;
Status
Merge
(
const
std
::
string
&
location
)
override
;
Status
Merge
(
const
std
::
string
&
location
)
override
;
Status
Search
(
long
n
,
Status
Search
(
long
n
,
const
float
*
data
,
const
float
*
data
,
...
@@ -54,13 +72,14 @@ public:
...
@@ -54,13 +72,14 @@ public:
float
*
distances
,
float
*
distances
,
long
*
labels
)
const
override
;
long
*
labels
)
const
override
;
ExecutionEnginePtr
BuildIndex
(
const
std
::
string
&
)
override
;
ExecutionEnginePtr
BuildIndex
(
const
std
::
string
&
)
override
;
Status
Cache
()
override
;
Status
Cache
()
override
;
Status
Init
()
override
;
Status
Init
()
override
;
protected:
protected:
FaissIndexIVFStatsHelper
ivf_stats_helper_
;
std
::
shared_ptr
<
faiss
::
Index
>
pIndex_
;
std
::
shared_ptr
<
faiss
::
Index
>
pIndex_
;
std
::
string
location_
;
std
::
string
location_
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录