T. Cem Yılmaz
T. Cem Yılmaz

Reputation: 510

Human language based searches in elasticsearch

Is it possible to make elasticsearch understand human languages?

user types "need a laptop for less than $800 with 8 gb ram" in the searchbox, elasticsearch understands that and filter laptops that have 8gb ram and less than $800?

Are there any packages for this or elasticsearch supports it naturally? Or if it's theoretically possible, any basic idea to achieve this

Upvotes: 4

Views: 1659

Answers (1)

ozborn
ozborn

Reputation: 1070

Machine understanding of natural languages is an unsolved problem and is an active area of research, so the short answer is no, elasticsearch can't be made to understand human languages.

NLP typically does semantics (understanding) through information extraction which is a sub-field within NLP. Elasticsearch is a great tool, but it not designed for information extraction - it is better thought of as an indexing tool with some extra features. You are likely more interested in named entity recognition (NER) and concept recognition to answer the kind of query you have described of which there is minimal support in Elasticsearch. The problem you are posing is actually a very hard one to answer, which is why Amazon makes available terms like GB on the left hand side of the screen when searching for laptops.

I would start with something other than Elasticsearch, maybe the Stanford NLP toolkit (http://stanfordnlp.github.io/CoreNLP/)

Good luck!

Upvotes: 4

Related Questions