Example #1
0
        private static int SearchDemo()
        {
            // 查询demo
            var handle = IntPtr.Zero;
            var ret    = CsCaiss.CreateHandle(ref handle);

            if (CsCaissDefine.CAISS_RET_OK != ret)
            {
                return(ret);
            }

            ret = CsCaiss.Init(handle,
                               CsCaissDefine.CAISS_MODE.CAISS_MODE_PROCESS,
                               CsCaissDefine.CAISS_DISTANCE_TYPE.CAISS_DISTANCE_INNER,
                               DIM, MODEL_PATH);
            if (CsCaissDefine.CAISS_RET_OK != ret)
            {
                return(ret);
            }

            int    status = 0;
            string result = CsCaiss.SyncSearch(handle, QUERY_WORD, CsCaissDefine.CAISS_SEARCH_TYPE.CAISS_SEARCH_WORD, TOP_K,
                                               FILTER_EDIT_DISTANCE, ref status);

            //var result = CsCaiss.SyncExecuteSQL(handle, QUERY_SQL, ref status);    // sql方式查询
            if (CsCaissDefine.CAISS_RET_OK != status)
            {
                ret = status;
                return(ret);
            }

            Console.WriteLine(result);    // 打印输出的结果信息

            return(CsCaiss.DestroyHandle(handle));
        }
Example #2
0
        private static int TrainDemo()
        {
            // 训练demo
            var handle = IntPtr.Zero;
            var ret    = CsCaiss.CreateHandle(ref handle);

            if (CsCaissDefine.CAISS_RET_OK != ret)
            {
                return(ret);
            }

            ret = CsCaiss.Init(handle,
                               CsCaissDefine.CAISS_MODE.CAISS_MODE_TRAIN,
                               CsCaissDefine.CAISS_DISTANCE_TYPE.CAISS_DISTANCE_INNER,
                               DIM, MODEL_PATH);
            if (CsCaissDefine.CAISS_RET_OK != ret)
            {
                return(ret);
            }

            ret = CsCaiss.Train(handle, DATA_PATH, MAX_DATA_SIZE, NORMALIZE,
                                MAX_INDEX_SIZE, PRECISION, FAST_RANK, REAL_RANK, STEP, MAX_EPOCH, SHOW_SPAN);
            if (CsCaissDefine.CAISS_RET_OK != ret)
            {
                return(ret);
            }

            return(CsCaiss.DestroyHandle(handle));
        }