In order to make such functionality you need to install couple of modules in your site. We will first make a Indexing engine which will index all your data and then we make blocks of specific data which will allow you to filter all related data to itself.
Modules to install for implementing Facet Search:
- Facet API
- Search API
- Database search
- Search Facets
- Search Views
- Entity API
We are done with installing and enabling above modules.
Steps to follow:
- Create content type and add fields in respective content type.
- Configure the search server
- configure the search index
- Add fields on in Facet API
- Create a complete view of your data
Step 1. Create content type and add fields in that:
Let’s take an example we created content type
Title : Company
Fields : Address
Fields : County
Now just create content of above content type and add data into it.
Right now we have content with data into it and we have modules. Now we need to configure above modules as per our functionality on data.
Step 2. Configure the Search server:-
Go to configuration admin page (configuration/admin) in your Drupal 7 site and click on search API in Search and metadata section . you should be now on Search configuration setting. We will create a search engine for our data. You should see page like below :
Now click on Add server link .Give name to your server I gave (MYSQL) , Choose database service for your service class and click create server. Your server should be like below.
Step 3. Configure the search Index:
Now we will make our search index which will index all data from using search server and database server. It will do indexing as user search for data on site and give fast result. Go back to search API settings and click on Add Index link. You should be on below page now.
Values for above form:
Index name : Business Information
Item type: Node
Server: MYSQL which you create earlier
Index items immediately : Checked
Click on create Index. Now we will select which field to be indexed from our data so we will select fields we want . In our case we will select
and click save configuration .
What just happened ?
we created our database server , Index server and added fields which need to be index. As you added fields for indexing Facet API actually make Facet blocks of those fields . don’t focus on them right now we will enable them later.
Now run Cron in your site which populate the Index.
Step 4. Create a view of your data which need to be Indexed and Displayed to your site user :
Install Views and enable it . Go to Structure > Views. click add new view. Select below values for each field:
Show content : Business Information “This will be name of your Search server”
Create a page: checked
Display format: Table
Your view information look like below:
Click on continue & edit button . Now in the Fields section click on add fields and Filter Index node . Add Index fields you want to show to your user. Your selection will looks like below.
Complete all configuration of specific field and click Apply Display . You are done with creating view . You are now able to see this view on your front page(/node).
Next step is to enabling all blocks of your facet search . Earlier we added fields which need to be Indexed . Actually when you add fields for indexing Facet API it create Blocks of those fields respectively. You have to just enable them from Search settings.
Step 5. Enable Facet block from Search settings :
Go to configuration and click on Search API from search and metadata . Now just click on edit in Index . You are able to see various configuration options like below.
Click on Facets and enable facets you want . When you enable and save configuration. It will create Blocks of respective fields .
Step 6. Enable your Facet block from Blocks:
Now go to structures and blocks . Here you are able to see your facet block in Disable section just enable them in any regions of your theme.
congratulation your site is ready. Visit your home page and it should look like below . As you select options from blocks your main view show you data as per your selection .