1

I want to use NLP with elasticsearch. I have been able to achieve one level by using Open NLP plugin as mentioned in comments of this question. I am getting entities like person, organization, location etc indexed while inserting documents.

I have a doubt while searching the same information.Since, I need to process the terms entered by the user during query time. Following is what I have thought of:

  1. Process the query entered by user using apache NLP as specified here.

  2. Extract Person, location and organisation Names from the previous and then run a query against the entities stored in index.

  3. I am also thinking of using Google Knowledge Graph Search Api to fetch related information about the extracted entities in the previous steps and then include them in search query as well. (Reason to do this is because we want to show results of Delhi in case some one searches for Capital Of India). We are not going with Synonyms Search approach in this case as we want the information to be dynamically available.

My question is that- Is there something better we can do to achieve the same, because lot of processing at query time is going to increase the response time?

Richa
  • 7,419
  • 6
  • 25
  • 34
  • As a first approach, if you're happy with what OpenNLP does at indexing time, I would try to do the same at query time and benchmark against your desired SLA. – Val Jun 18 '18 at 13:35
  • Earlier I tried with a single document which was not large and it was working fine with open-nlp plugin. But now when I am trying it with a large PDF document it is taking way too long time (in minutes for a single document) while indexing. Even google cloud nlp-api is taking too much time. – Richa Jun 19 '18 at 05:18
  • I'd say that if it takes time at indexing time, it is ok, but you were more worried about query time – Val Jun 19 '18 at 05:34

0 Answers0