searchlucenegraphqlfaceted-searchgraphql-js

Difference between Faceted Search and Lucene search?


I came to know about Faceted Search and Lucene search and getting confusion regarding the same. Any one please give an idea regarding the difference between Faceted Search and Lucene search ,which scenario can apply both serach .

I am working with graphQL ,is there any graphLQ client to provide Faceted search feature ?

Thanks in advance


Solution

  • Faceted search is a kind of search provided by Lucene that searches through a particular dataset. They also provide 'normal' query searching, that searches through all the documents without bias and provides results.

    Two good posts that explain faceted search well -

    Faceted Search with Solr

    Faceted Search - User's Guide

    Faceted search is the dynamic clustering of items or search results into categories that let users drill into search results (or even skip searching entirely) by any value in any field. Each facet displayed also shows the number of hits within the search that match that category. Users can then “drill down” by applying specific constraints to the search results. - Lucidworks

    Also, check out these examples that are provided by the lucene devs.

    If you want to go in-depth into lucene architecture or even as a reference, this is a good paper - Architecture and Implementation of Apache Lucene. See the search section (ie. 2.2.7) for Index Searching. Here is a bit more concept about Lucene's Index Searching -

    Taken from the paper Architecture and Implementation of Apache Lucene

    Lucene is able to achieve fast search responses because, instead of searching the text directly, it searches an index instead. This would be the equivalent of retrieving pages in a book related to a keyword by searching the index at the back of a book, as opposed to searching the words in each page of the book.

    This type of index is called an inverted index, because it inverts a page-centric data structure (page->words) to a keyword-centric data structure (word->pages).

    Generally Lucene supplies components to search inside the index and to obtain hits on the searched query. QueryParser and indexSearcher are the main components involved in most Lucene based search engines. After the Index have been constructed with postings lists , the search application will retrieve the user query in the index. It first analyzes the user query using the same analyzer as in the indexing process, then transform the user query in to a Query object with respect to the Lucene query language.