1. A method for analyzing and indexing an unstructured or semistructured document, comprising: receiving an unstructured or semistructured document; converting the document to one or more text streams; analyzing the one or more text streams for identifying textual contents of the document; wherein the textual content contains words and bi-words; analyzing the one or more text streams for identifying sections and paragraphs of the document; indexing each word and/or bi-word with the sections and paragraphs, wherein the indexing further comprises assigning a predefined priority value to each word and/or bi-word within each section and paragraph; and saving a result of the indexing in a data storage device; wherein the results of the indexing includes correlation of at least one of words and bi-words to at least one of location and selections in the document, wherein the correlations are usable during a term-based search to identify the at least one of the location and sections in the document having a term matching the at least one of the words or bi-words, and further comprising identifying physical page numbers in the unstructured or semistructured document, and mapping logical page numbers to the physical page numbers, wherein each paragraph is individually detected by analyzing the one or more text streams, wherein the paragraphs are identified by: determining geometry information about lines of the text streams; placing the lines into blocks based on a proximity of the lines relative to each other; and analyzing the blocks for joining the lines into paragraphs.