Search with database

Hi,

I am new to Elastic Search. I am developing application in PHP and MySQL.

I need to implement search functionality in my application. Basic requirements are as follows:

1> Search keyword will match against the entire database. I have application database in MySQL with multiple tables.
2> It should auto suggestive search same as google. e.g. once you type any letter, it will auto suggest with matching records.
3> How to integrate/configure my application database with elastic search?
4> Which API will be used to achieve web search.
4> Are there any charges involved for using any API of elastic?

Looking forward your response.

Thanks

1> Search keyword will match against the entire database. I have application database in MySQL with multiple tables.

That data needs to be imported into Elasticsearch. ES is not a search interface on top of existing data stores, it's a data store in itself.

2> It should auto suggestive search same as google. e.g. once you type any letter, it will auto suggest with matching records.

Okay, that's doable.

3> How to integrate/configure my application database with Elasticsearch?

That question is too open to answer in short form.

4> Which API will be used to achieve web search.

Elasticsearch has a REST interface so technically you could expose it directly to your web clients, but you probably want to use an application server or similar as a proxy. The application server could either use said REST API or the native Java API.

4> Are there any charges involved for using any API of elastic?

Elasticsearch is usually self-hosted. There are hosted solutions and I think it's safe to assume that they come at a cost.

Thanks for the quick reply.

That data needs to be imported into Elasticsearch. ES is not a search
interface on top of existing data stores, it's a data store in itself.
=> If I have real time data entered through web interface by the users, How efficient and feasible to send these data to elasticsearch.

Elasticsearch has a REST interface so technically you could expose it
directly to your web clients, but you probably want to use an
application server or similar as a proxy. The application server could
either use said REST API or the native Java API.
=> What is application server?