Skip to content

Commit

Permalink
Merge pull request #3 from haiwen/add_deploy_by_docker_and_opt_struct…
Browse files Browse the repository at this point in the history
…ures

update
  • Loading branch information
freeplant authored Oct 11, 2024
2 parents db82372 + fc15b90 commit 6a5080d
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 57 deletions.
22 changes: 6 additions & 16 deletions manual/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,10 @@

**SeaSearch** is a lightweight search engine will replace ElasticSearch as the default search engine, built on open source search engine ([ZincSearch](https://zincsearch-docs.zinc.dev/)) implemented in Go language.

Why use **SeaSearch**:
## SeaSearch vs. ElasticSearch:

- **Problems of ElasticSearch**:
- Not designed for large number of indexes (like one index per library)
- Need to search entire storage when searching inside a library
- Need to filter out results that the user has permissions to acces
- Can become slow when you have ~billion of files to search
- Heavyweight Java program
- Upgrade often requires rebuilding index

- **How about SeaSearch**:
- Lightweight and can support one index per library
- API compatible with ElasticSearch
- Architecture Highlights
- Cloud-native: can use S3 as storage (for single-node or cluster)
- Shared storage: in a cluster, nodes use S3 as shared storage and store index metadata in etcd
- Failover: node switching is easy thanks to shared storage architecture. ES replicates data between the nodes so consistency is more complex.
- **Lightweight**: SeaSearch implemented in Go language, which is more lightweight than ElasticSearch the heavyweight Java program
- **Single Index per Library**: SeaSearch can search entire storage inside a libary and filter out the results with access permissions of the user, as ElasticSearch does not support
- **Good Compatibility**: API compatible with ElasticSearch
- **Support S3 Storage**: SeaSearch can use S3 as storage
- **Easier Shared Storage in a cluster**: ElasticSearch replicates data between the nodes so consistency is more complex
7 changes: 6 additions & 1 deletion manual/api/seasearch_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@

SeaSearch uses Http Basic Auth for permission verification, and the API request needs to carry the corresponding token in the header.

Generate basic auth through this tool: [http://web.chacuo.net/safebasicauth](http://web.chacuo.net/safebasicauth)
```
# headers
{
'Authorization': 'Basic <basic auth token>'
}
```

## User management

Expand Down
38 changes: 0 additions & 38 deletions manual/config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,44 +33,6 @@ ZINC_S3_PATH_STYLE_REQUEST=<your s3 style request path>
ZINC_S3_AWS_REGION=<your s3 AWS region>
```

## Cluster Configurations

### Basic Configurations

```shell
# default none for standalone deployment, optional to cluster, must be cluster for cluster deployment
ZINC_SERVER_MODE=

# cluster id,need to be globally unique
ZINC_CLUSTER_ID=<your cluster id>

ZINC_ETCD_ENDPOINTS=<your etcd address>
ZINC_ETCD_USERNAME=<your etcd username>
ZINC_ETCD_PASSWORD=<your etcd password>
```

### Proxy Configurations
If the current node is a proxy node, the term `ZINC_SERVER_MODE` has to be set as **proxy** and the `ZINC_ETCD_ENDPOINTS` has to be pointed (i.e., =127.0.0.1:2379).

```shell
ZINC_CLUSTER_PROXY_LOG_DIR=/opt/seasearch/data/log
ZINC_CLUSTER_PROXY_HOST=0.0.0.0
ZINC_CLUSTER_PROXY_PORT=4082
ZINC_ETCD_PREFIX=<yout etcd perfix, default /zinc>
ZINC_MAX_DOCUMENT_SIZE=1m # Bulk and multisearch limit on the maximum single document,default 1m
ZINC_CLUSTER_MANAGER_ADDR=127.0.0.1:4081 # manager address
```

### Cluster-manger Configurations

```shell
ZINC_CLUSTER_MANAGER_LOG_DIR=/opt/seasearch/data/log
ZINC_CLUSTER_MANAGER_HOST=0.0.0.0
ZINC_CLUSTER_MANAGER_PORT=4081
ZINC_CLUSTER_MANAGER_ETCD_ENDPOINTS=<your etcd endpoints>
ZINC_CLUSTER_MANAGER_ETCD_PREFIX=<yout etcd perfix, default /zinc>
```

## Logs Configurations

```shell
Expand Down
2 changes: 0 additions & 2 deletions manual/deploy/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Deploy

Note: SeaSearch only supports deployment via docker now.

## Download the seasearch.yml

```bash
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ markdown_extensions:

# Page tree
nav:
- Introduction: README.md
- Deploy: deploy/README.md
- Configuration: config/README.md
- SeaSearch API: api/seasearch_api.md

0 comments on commit 6a5080d

Please sign in to comment.