Search engine for full-text search in Django project - django

I'm developing full-text search function in Django project, and I'm confusing about search engine. I found haystack with elasticSearch, Whoosh, and Solr. I don't know which search engine is appropriate for my project. I'm developing st like shopping web, and I'm using postgreSql. Also, it's really nice if it can support language searching (For example: "banh my" and "bánh mỳ")

Whoosh is Python-based, so that is helpful if you want to stick to a single codebase.
Elasticsearch and Solr are both Java and both have Lucene core underneath. Solr is fully open-source, while Elasticsearch has commercial components. Between the two, Elasticsearch is targeted more at analytics, while Solr is stronger with searching text. But both could be tuned either way, especially for something as simple as accent folding (which seems to be your use-case).
Finally, recent versions of PostreSQL also have search engine features, which may be sufficient for your needs.

Related

What shall I use for full text search and fuzzy search on a social network django site with a postgresql database?

So, I was looking for a search engine for my new django project with a postgresql database and I ended up with elasticsearch and sphinx. I've chosen the second one, because I thought that if you're searching in a lot of posts you need a fast search, which uses less memory, but after looking at realization of sphinx I went up like, "How do I do that on python and can I do fuzzy search with it?". I've found few django-sphinx libraries, but they seem to be abandoned (last update was 5 years ago), and in sphinx documentation I didn't find anything about django, just few mentions of python. So, is sphinx still alive and how can I use it with django, or should I choose another engine for my tasks?
Since you're using Postgres as the database, you can take a look at Postgres FullText search, it might suit your need.
Django has support for it, here's the official documentation.

Django & Mongo ORM mapping

I have a Django project with a MongoDB, connecting through pymongo.
I've looked into several ORM(-like) layers, but none of them seem well maintained or supporting the Django 1.8 (mongo-engine only supports Django 1.5, mongokit is no longer maintained, and the other libraries seem to have no real community behind them).
So I think I'll be just using pymongo, which means that there is quite some things I'll need to implement myself, for example validation (checking that every document inserted in a collection has the required fields and field types).
How would I go about this?
Are there any example projects that I can take a look at?
I found this project which connects from Django directly to Mongo, but there is not much structure in it.
Use PyMODM. As the docs you linked to say, "PyMODM is an ORM-like framework on top of PyMongo. PyMODM is maintained by engineers at MongoDB, Inc. and is quick to adopt new MongoDB features. PyMODM is a “core” ODM, meaning that it provides simple, extensible functionality that can be leveraged by other libraries to target platforms like Django. At the same time, PyMODM is powerful enough to be used for developing applications on its own. Complete documentation is available on readthedocs in addition to a Gitter channel for discussing the project."
https://api.mongodb.com/python/3.4.0/tools.html

Could we add custom function query in Azure search like Solr FunctionQueries

I have building search engine of a website by Azure search and need to add some complex logic rule in searching. It's can be written easily in programming languages: C#, python...but hard in query syntax. I saw Solr has feature like FunctionQueries and elastics search can run a python script. How about Azure search service?
It's not supported.
Maybe there is a different way to enable your scenario. Feel free to reach out to me at jlembicz at Microsoft com to discus your requirements in detail.

Purpose of Haystack

Can anyone help me to do know about haystack? I have read about it in the official website. But I can't get it clearly what they do in it and in which purpose it will be used. Explain me about it with the example. Thanks in advance.
Haystack provides modular search for Django. It allows you to search on top of search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.)
It features a unified, familiar API that allows you to plug in different search backends without having to modify your code.
Read Docs Here for more info

What is a simple way to make a basic website with graph database backend for newbie?

Graph database systems like ne04j seem to becoming very popular of late. I am a newbie user who is trying to set-up a website that needs to display some data which is best displayed using a graph database (essentially i will visualize this on the website).
I am designing this website using CMS Drupal but i am open to changing to other CMS or in worst case a web application framework like Django. Can anyone suggest me a basic template, website or extension to a CMS that enable graph databases or a good way to start learning web app development using graph databases for a noob ?
Well, if you're curious about using Drupal to manage graphs, I'd recommend looking over these contributed modules:
http://drupal.org/project/graphapi
http://drupal.org/project/charts
http://drupal.org/project/views_charts
http://drupal.org/project/charts_graphs
There is http://structr.org/, a CMS built on Neo4j and very Open and capable. Other bindings, you might take a look at REST bindings and neo4j embedded bindings to get going.
If you're looking for even more alternatives for charting in Drupal, then you may want to start from the Comparison of charting module, which includes information and links about quite a lot of charting related modules in Drupal.
If you're aware of other modules not included in it, please update that docu if you can, or let me know about it.