Skip to content

Commit 2526c45

Browse files
committed
Update README
1 parent 53e863e commit 2526c45

1 file changed

Lines changed: 4 additions & 157 deletions

File tree

README.md

Lines changed: 4 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,158 +1,5 @@
1-
# Quickstart
2-
3-
*This Quickstart suit for those who want to search something but do not know how to extract image or text to features. Others refer to [APILowLevel.md](APILowLevel.md) .*
4-
5-
Vearch is aimed to build a simple and fast image retrieval system. Through this system, a image retrieval system could be easily built, including image object detection, feature extraction and similarity search. This quickstart demonstrates how to use it.
6-
7-
![images/main_process.gif](images/main_process.gif)
8-
9-
10-
11-
## Before you begin
12-
13-
1. Deploy Vearch system referred to [Deploy.md](https://github.com/vearch/vearch/blob/master/docs/Deploy.md).
14-
15-
For testing you can download [coco data](https://pjreddie.com/media/files/val2014.zip), or use the images in images folder we choose from [coco data](https://pjreddie.com/media/files/val2014.zip). For more details, you can refer test folder in `plugin.src`
16-
17-
## Different from APILowLevel.md
18-
19-
This API is similar to [APILowLevel.md](https://github.com/vearch/vearch/blob/master/docs/APILowLevel.md), and plugin can perfectly adapt to it, Any method defined in APILowLevel.md can be used by plugin. However, if vector has existed, the APILowLevel.md is the fisrt choice.
20-
21-
The difference:
22-
23-
- The name of db can not be one of ['_cluster', 'list', 'db', 'space'].
24-
- Can not use `_msearch` method.
25-
- Replace the feature field with the object requiring the feature, refer to insert or search demo.
26-
27-
28-
## Deploy a plugin service
29-
30-
This requires only two operations:
31-
32-
1. Modify parameters in `src/config.py`;
33-
2. Execution script:
34-
For image, `bash ./bin/run.sh image` ;
35-
For video, `bash ./bin/run.sh video`;
36-
For text, `bash ./bin/run.sh text` ;
37-
38-
39-
## Create a database and space
40-
41-
Before inserting and searching, a database and space should be creating firstly. Use the following `curl` command to create a new database and space.
42-
43-
```shell
44-
# create a db which name test
45-
curl -XPUT -H "content-type:application/json" -d '{"name": "test"}' http://127.0.0.1:4101/db/_create
46-
47-
# create a space in test db which name test too.
48-
## for image
49-
curl -XPUT -H "content-type: application/json" -d '{"name": "test", "partition_num": 1, "replica_num": 1, "engine": {"name": "gamma", "index_size": 70000, "max_size": 10000000, "id_type": "String", "retrieval_type": "IVFPQ", "retrieval_param": { "metric_type": "InnerProduct", "ncentroids": 256, "nsubvector": 32 } }, "properties": { "url": { "type": "keyword", "index": true }, "feature1": { "type": "vector", "dimension":512, "format": "normalization" } }} }' http://127.0.0.1:4101/space/test/_create
50-
51-
## for text dimension is 768
52-
curl -XPUT -H "content-type: application/json" -d '{"name": "test", "partition_num": 1, "replica_num": 1, "engine": {"name": "gamma", "index_size": 70000, "max_size": 10000000, "id_type": "String", "retrieval_type": "IVFPQ", "retrieval_param": { "metric_type": "InnerProduct", "ncentroids": 256, "nsubvector": 32 } }, "properties": { "text": { "type": "keyword", "index": true }, "feature1": { "type": "vector", "dimension":768, "format": "normalization" } }} }' http://127.0.0.1:4101/space/test/_create
53-
```
54-
55-
A successful response looks like this:
56-
57-
```shell
58-
# create db
59-
{"code":200,"msg":"success","data":{"id":1,"name":"test"}}
60-
61-
# create space
62-
{"code":200,"msg":"success","data":{"id":2,"name":"test","version":2,"db_id":1,"enabled":true,"partitions":[{"id":3,"space_id":2,"db_id":1,"partition_slot":0,"replicas":[1]},{"id":4,"space_id":2,"db_id":1,"partition_slot":2147483647,"replicas":[1]}],"partition_num":2,"replica_num":1,"properties":{ "url": { "type": "keyword", "index":true}, "feature1": { "type": "vector", "dimension":512, "format": "normalization" }},"engine":{"name":"gamma","index_size":100000,"max_size":100000,"nprobe":-1,"metric_type":"InnerProduct","ncentroids":-1,"nsubvector":-1,"nbits_per_idx":-1}}}
63-
```
64-
65-
66-
67-
## Delete a database and space
68-
69-
If the database and space is not need again, Use the following `curl` command to delete a database and space.
70-
71-
```shell
72-
73-
curl -XDELETE http://127.0.0.1:4101/space/test/test
74-
curl -XDELETE http://127.0.0.1:4101/db/test
75-
```
76-
77-
A successful response looks like this:
78-
79-
```shell
80-
{"code":200,"msg":"success"}
81-
```
82-
83-
84-
85-
## Insert data into space
86-
87-
Use the following `curl` command to insert single data into space.
88-
89-
The method of single import demo:
90-
91-
```shell
92-
# single insert
93-
94-
## image
95-
curl -XPOST -H "content-type: application/json" -d' { "url": "../images/COCO_val2014_000000123599.jpg", "feature1":{"feature":"../images/COCO_val2014_000000123599.jpg"}} ' http://127.0.0.1:4101/test/test/AW63W9I4JG6WicwQX_RC
96-
97-
## text
98-
curl -XPOST -H "content-type: application/json" -d' { "text": "感谢大家", "feature1":{"feature":"感谢大家"} } ' http://127.0.0.1:4101/test/test/AW63W9I4JG6WicwQX_RC'
99-
```
100-
101-
A successful response like this:
102-
103-
```shell
104-
{"_index":"test","_type":"test","_id":"AW63W9I4JG6WicwQX_RC","status":201,"_version":1,"_shards":{"total":0,"successful":1,"failed":0},"result":"created","_seq_no":1,"_primary_term":1}
105-
```
106-
107-
## Get record by ID
108-
109-
Use the following `curl` command to get a record by ID
110-
111-
```shell
112-
# request
113-
curl -XGET http://127.0.0.1:4101/test/test/AW63W9I4JG6WicwQX_RC
114-
115-
# response
116-
{"_index":"test","_type":"test","_id":"AW63W9I4JG6WicwQX_RC","found":true,"_version":1,"_source":{"url":"../images/COCO_val2014_000000123599.jpg"}}
117-
```
118-
119-
120-
121-
## Delete record by ID
122-
123-
Use the following `curl` command to delete a record by ID
124-
125-
```shell
126-
# request
127-
curl -XDELETE http://127.0.0.1:4101/test/test/AWz2IFBSJG6WicwQVTog
128-
129-
# response
130-
{"_index":"test","_type":"test","_id":"AW63W9I4JG6WicwQX_RC","status":200,"_version":0,"_shards":{"total":0,"successful":1,"failed":0},"result":"unknow","_seq_no":1,"_primary_term":1}
131-
```
132-
133-
134-
135-
136-
## Search similar result from space
137-
138-
Searching by an image URI for an publicly accessible online image or an image stored in images folders.
139-
140-
Searching by an image stored in images folders or image URI on Internet, using the following `curl` command to search similar result from space
141-
142-
```shell
143-
curl -H "content-type: application/json" -XPOST -d '{ "query": { "sum": [{"feature":"../images/COCO_val2014_000000123599.jpg", "field":"feature1"}]}}' http://127.0.0.1:4101/test/test/_search
144-
145-
```
146-
147-
A successful response looks like this:
148-
149-
```shell
150-
{"took":14,"timed_out":false,"_shards":{"total":2,"failed":0,"successful":2},"hits":{"total":1,"max_score":0.9999997615814209,"hits":[{"_index":"test","_type":"test","_id":"AW8OftTLJG6WicwQyAt2","_score":0.9999997615814209,"_extra":{"vector_result":[{"field":"feature1","source":"","score":0.9999997615814209}]},"_version":1,"_source":{"url":"../images/COCO_val2014_000000123599.jpg"}}]}}
151-
```
152-
153-
search result look like this
154-
155-
![images/COCO_val2014_000000123599.jpg](images/COCO_val2014_000000123599.jpg)
156-
157-
![images/result.jpg](images/result.jpg)
1+
# Docker
1582

3+
* build: `docker build . -t vearch/plugin:latest`
4+
* add `-f Dockerfile.NonChina` to not use the Chinese docker index
5+
* run: `docker run -p 4101:4101 vearch/plugin`

0 commit comments

Comments
 (0)