Comments (4)
Perhaps it is worth investigating this elastic search docker as an alternative:
https://github.com/dockerfile/elasticsearch
from feti.
Consider django sphinx as well. We use it in t4a.
Also postgresql full text search.
On 16 Apr 2015 1:53 PM, "cchristelis" [email protected] wrote:
Perhaps it is worth investigating this elastic search docker as an
alternative:
https://github.com/dockerfile/elasticsearchReply to this email directly or view it on GitHub
#10 (comment).
from feti.
Summary
The idea is to use haystack as a wrapper to the search engine. We will communicate (and define) our search via haystack to the search engine. Haystack support some search engine backend. Haystack itself needs a backend to work. We will probably implement this backend service as a separate docker image and configure it to access our database.
Solr
- Haystack suggest Solr 3.5+
- Solr needs Java
- If we want to use docker, consider --> https://registry.hub.docker.com/u/dockerimages/docker-solr/ and https://registry.hub.docker.com/u/dockerimages/docker-solr-systemd/
- Needs pysolr binding
- Solr have their own schema.xml . We need to generate this schema using haystack, everytime we update our models and indexes, and give it to solr
- support spatial search
- support full text
ElasticSearch
- Haystack suggest ES 0.9+
- ES needs Java
- If we want to use docker, consider https://github.com/dockerfile/elasticsearch
- Needs elasticsearch-py binding
- support spatial search
- support polygon search
- support full text
Whoosh
- Haystack suggest Whoosh 1.3.1+
- Pure python
- It says, good for small scale live deployment, and easy to setup --> but I think it means not ready for production
- doesn't support spatial search
So, I think we will use ElasticSearch backend, maybe it is less complicated to setup and manage (compared to Solr), and it provides more functionality. If we want a quick solution, we just have to use haystack instead of implementing a wrapper of postgres's full text.
Implementation plan
- We will need a docker image of ElasticSearch and set it up as a search engine of our database.
- Install Haystack on Django, and set the connection URL to our ElasticSearch backend
- Implement Django models and Haystack SearchIndex so Haystack can understand how do we index the data
- Implement SearchView and/or SearchForm, because I think we will need more than just a simple one search box. We will implement the search criteria using SearchForm, and have it connected with SearchQuerySet API to return results.
- We can apply additional sorting method or filtering geographic information using Spatial Search, which is said very similar to GeoDjango.
from feti.
The investigation part is pretty much over...
from feti.
Related Issues (20)
- api view did not optimize serializer calls HOT 1
- ajax request on occupation detail
- occupation backbone model is destroyed unexpectedly
- upgrade pip
- Fix the test suite
- migrate pep8 to pycodestyle
- using the back button between Map view and occupation view is broken HOT 1
- occupation detail layout HOT 3
- Search bar needs to refresh HOT 1
- SAQA ID search broken HOT 1
- Marker using cache for occupation
- Occupation detail view bug HOT 3
- Provincial Search is Stuck
- Broken JS HOT 1
- Flip-flop results page HOT 1
- share share share HOT 1
- details bug HOT 2
- Map Map Map HOT 1
- Filters
- Updating Bio
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from feti.