Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anubhavp28/widescale
WideScale is a full-text indexing and searching engine, written in golang.
https://github.com/anubhavp28/widescale
full-text-search golang
Last synced: about 2 months ago
JSON representation
WideScale is a full-text indexing and searching engine, written in golang.
- Host: GitHub
- URL: https://github.com/anubhavp28/widescale
- Owner: anubhavp28
- Created: 2018-12-26T21:11:18.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-07-17T11:37:35.000Z (over 5 years ago)
- Last Synced: 2024-06-19T14:53:54.075Z (7 months ago)
- Topics: full-text-search, golang
- Language: Go
- Homepage:
- Size: 108 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WideScale
WideScale is a full-text indexing and searching engine, written in golang. WideScale is solely for educational purposes.
It provides a simple API to search for words or group of words, inside large quantity of text spread across multiple documents.
Internally, WideScale uses a Inverted Index, similar to
ElasticSearch.
For more information, see this article.**Let me know if you guys have any suggestions.**
### Why use a special data structure (Inverted Index) ?
I found Inverted Index while I was reading about ElasticSearch. To understand why use it, here is excerpt from wikipedia article about it -
>> When dealing with a small number of documents, it is possible for the
full-text-search engine to directly scan the contents of the documents
with each query, a strategy called "serial scanning". This is what some tools, such as grep, do when searching.>>However, when the number of documents to search is potentially
large, or the quantity of search queries to perform is substantial, the
problem of full-text search is often divided into two tasks: indexing
and searching. The indexing stage will scan the text of all the
documents and build a list of search terms (often called an index).
In the search stage, when performing a specific query, only the index
is referenced, rather than the text of the original documents.I really didn't think I could do a better explanation than that.
## Installation
* Install golang ([Instructions](https://golang.org/doc/install)). Add `go` installation path to your PATH environment variable.
* Download [mux](https://github.com/gorilla/mux).
```
> go get github.com/gorilla/mux
```
* Downlaod widescale
```
> go get github.com/anubhavp28/WideScale/
```
* Install widescale
```
> go install github.com/anubhavp28/WideScale/
```## Usage
* To start the server, simply run:```
> cd $(go env GOPATH)/bin
> widescale
```## License
This project is licensed under the MIT License - see the LICENSE.md file for details.