I have 33 Tables in MySQL. Around 20 Tables will use in Search. What to do to Handle and Search in All this Tables? I have already Implement this by Importing 1 table and search it clearly.
But now I want to search in all tables..
Do I create all new core for different Tables ?? Or I Should use JOIN queries on importing Data ?? Please give me better suggestions.
Best How To :
It all depends on the your requirement. You can do both ways By creating core for the individual table or By joining couple of tables(consider 3-4 tables which are related with each other) together and indexing the data into a core.
I would suggest to go with the later where it would minimize the search time. You can use the DIH(Data import Handler) where in you can write a join query for(get the selected search fields on which you want to search) couple of tables which have a relation. And when you have a search with specific area you can search in the specific core.
As I have in my application, two main areas document, activities.
I have two different core named document and activities.
I have indexed the data related to documents in the document core. when there is search request from the document area, the search is performed on the specific core i.e Document.
Same applies to Activities.
Multiple cores let you have a single Solr instance with separate configurations and indexes, with their own config and schema for very different applications, but still have the convenience of unified administration. Individual indexes are still fairly isolated, but you can manage them as a single application, create new indexes on the fly by spinning up new SolrCores, and even make one SolrCore replace another SolrCore without ever restarting your Servlet Container.
for more detailed information : https://wiki.apache.org/solr/CoreAdmin