0

My goal is to let User type in "show me top suppliers for 'gopro'" in the search field, he will be presented with 5 top list.

At the end of day, I want the above query to execute the following sql.

SELECT  "customername" AS "CustomerName",   "last1yearspend" AS "Last1YearSpend" 
FROM "xx"."spend" AS "SupplierModel"
WHERE "SupplierModel"."supplierid" = 333 
ORDER BY "SupplierModel"."rank" ASC 
LIMIT 5;

I'm not just talking about 'text' search here.

Not sure even Kendra can do this. Kendra could undertand NLP so 'show me ~' can be handled correctly maybe. But, please note that I'm not looking for 'top suppliers' string here. Rather,it needs to understand how to get 'top suppliers' . To do that, it need to run sql query like above. Not just searching 'literal' value from the indexed data.

Not Comprehend as it just can extract entity and sentiment.

Not ES as it's just simply string match without/with NLP.

Can this even be feasible? Any other technology?

jetulis
  • 168
  • 1
  • 13

1 Answers1

0

Have you looked at quicksight? Quicksight Q support natural language for querying a dataset and you can build connection between quicksight and RDS database.

Alternatively, you can build a lex bot, and create intent classification combined with sql query. You may want to iterate over multiple intent to improve accuracy over time.