What things I needed to make a Search engine for a database?
I don't have any prior experience in making a search engine. I thing it is going to be a good module to make search engine for a database as a beginner.
If you want to search "structurally", e.g. "find all people over 40 years born in Amsterdam", then you probably need to make a frontend that generated and executes SQL queries. You could use a web frontend, for which you could Django or Flask or another Python framework (since you tagged this as Python).
If instead you want a more Google-like search, where you just enter free text, and it searches the whole database, then I recommend you use existing software to do the actual searching, because that's hard to do well. (You can search for texts, but it's hard to find what result is the most relevant, plus it takes a lot of queries to search a large database, and you might want fuzzy search...).
In such as case, you could use the same as above, but you would add something like ElasticSearch to the mix. I know Django had a plugin called Haystack, that's just one way though, you could even call ElasticSearch directly.
What happens is that ElasticSearch keeps a search index based on your database. Then your application asks ElasticSearch for results matching a text. The result can then be linked back to a row in the database.
Sorry in advance for not mentioning the proper question. I would like to implement a small part of "Elastic search". Let say I want to find nearest hotel around me for staying for a night say within 2kms. So for a result I would like to add hotel name and its location.
So is this possible without going in depth. Please let me know if this thing comes in advance or not.
The "within 2 kilometers" can be done by both the database and by search engines like ElasticSearch, so you can choose. You can usually find info by adding "geo" to your Google query.
If you really only need to search for the name (single database column) and location, then maybe you don't need something like ElasticSearch. It's useful for more advanced free-text search though (maybe later you'll want to search descriptions).
Mark
If you want to search "structurally", e.g. "find all people over 40 years born in Amsterdam", then you probably need to make a frontend that generated and executes SQL queries. You could use a web frontend, for which you could Django or Flask or another Python framework (since you tagged this as Python).
If instead you want a more Google-like search, where you just enter free text, and it searches the whole database, then I recommend you use existing software to do the actual searching, because that's hard to do well. (You can search for texts, but it's hard to find what result is the most relevant, plus it takes a lot of queries to search a large database, and you might want fuzzy search...).
In such as case, you could use the same as above, but you would add something like ElasticSearch to the mix. I know Django had a plugin called Haystack, that's just one way though, you could even call ElasticSearch directly.
What happens is that ElasticSearch keeps a search index based on your database. Then your application asks ElasticSearch for results matching a text. The result can then be linked back to a row in the database.