Difference between Inverted Index and Forward Index
- It is a data structure that stores mapping from words to documents or set of documents i.e. directs you from word to document.
- Steps to build Inverted index are:
- Fetch the document and gather all the words.
- Check for each word, if it is present then add reference of document to index else create new entry in index for that word.
- Repeat above steps for all documents and sort the words.
- Indexing is slow as it first checks that word is present or not.
- Searching is very fast.
- Example of Inverted index:
Word Documents hello doc1 sky doc1, doc3 coffee doc2 hi doc2 greetings doc3
It does not store duplicate keywords in index.
- Real life examples of Inverted index:
- Index at the back of the book.
- Reverse lookup
Forward Index:
- It is a data structure that stores mapping from documents to words i.e. directs you from document to word.
- Steps to build Forward index are:
- Fetch the document and gather all the keywords.
- Append all the keywords in the index entry for this document.
- Repeat above steps for all documents
- Indexing is quite fast as it only append keywords as it move forwards.
- Searching is quite difficult as it has to look at every contents of index just to retrieve all pages related to word.
- Example of forward index:
Document Keywords doc1 hello, sky, morning doc2 tea, coffee, hi doc3 greetings, sky
It stores duplicate keywords in index. Eg: word “sky” is stored multiple times.
- Real life examples of Forward index:
- Table of contents in book.
- DNS lookup
Similarity between Forward index and Inverted Index:
- Both are used to search text in document or set of documents.
Recommended Posts:
- Inverted Index
- Neo4j Drop Index
- Neo4j Create Index
- GCDs of given index ranges in an array
- Index of kth set bit in a binary array with update queries
- Minimum Index Sum for Common Elements of Two Lists
- Queries to update a given index and find gcd in range
- Index Mapping (or Trivial Hashing) with negatives allowed
- Count of index pairs with equal elements in an array
- Queries for elements greater than K in the given index range using Segment Tree
- Find the character in first string that is present at minimum index in second string
- Count smaller elements on right side and greater elements on left side using Binary Index Tree
- How to Implement Forward DNS Look Up Cache?
- Difference between Where and Group By
- Difference between DDL and DML in DBMS
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.