Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett...

35
Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s Project Writing 5/24/2012 1

Transcript of Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett...

Page 1: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Full-Text

Indexing For

Heritrix Project Advisor: Dr. Chris Pollett

Committee Members: Dr. Mark Stamp

Dr. Jeffrey Smith

Darshan Karia

CS298 – Master’s Project Writing

5/24/2012

1

Page 2: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Agenda

Introduction

Heritrix

Design and Implementation

Testing and Results

Conclusion

5/24/2012 2

Page 3: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Introduction The Internet Archive

An open source project

Stores the archived version of the World Wide Web.

Provides domain-based search for the archived web.

This project takes idea from Internet Archive and extends the search capability on the archive files to provide keyword-based search on the archives for a user.

5/24/2012 3

Page 4: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Heritrix

An open-source web crawler

Respects robots.txt exclusion directives

and META robots tags

Uses adaptive crawl method to avoid too

much traffic

It can be obtained from:

http://sourceforge.net/projects/archive-

crawler/files/

5/24/2012 4

Page 5: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Design and Implementation

Two Modules

Indexing Module

Iterates through all the archive files and constructs an inverted index for the html files inside these archive files.

Calculates BM25F scores partly for relevance of search results based on query terms.

Searching Module

Provides a Front-end user interface for users to easily search through the index created by the Indexing Module and retrieve desired results.

5/24/2012 5

Page 6: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Iterating through Archive files

Parsing HTML Documents

Stemmer

Hashing

Word Dictionary

Inverted Index

BM25F Score

5/24/2012 6

Indexing Module

Page 7: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Iterating through archive files

Heritrix provides access to the classes like

ArchiveReader to read through archive

files using the API. This class provides

iterator of type ArchiveRecord and allows

us to iterate through all the records within

an archive file.

ArchiveRecord contains header

information about the archive records

and the record itself.

5/24/2012 7

Page 8: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Parsing HTML Documents

HTML documents can be parsed in two

ways.

DOM Parsing

Sequential parsing of document

Builds tree structure of document in memory

SAX Parsing

Event-based parsing of document

Stores data only related to current event or

tag being processed

5/24/2012 8

Page 9: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

SAX Parsing is generally more memory

efficient compared to DOM Parsing.

In this project, I used SAX Parser

implemented in Java.

5/24/2012 9

Page 10: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Stemming

Stemming is a process of reducing the

derived words to their root forms.

E.g. ‘stemmer’, ‘stemmed’, ‘stemming’,

‘stem’, all refers to same root ‘stem’.

stemmer

stemmed

stemming stem

5/24/2012 10

stem

Page 11: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Stemming helps in grouping related

search results together and considering

results having words with same root.

In this project, open-source Porter

Stemmer developed in Snowball was

used.

Stop-words have little or no lexical meaning and are used for grammar. They

can be safely eliminated from the

indexing process to save memory.

5/24/2012 11

Page 12: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Hashing

MD5 hashing is performed on words and

document urls to obtain strings of the

same length for word_id and doc_id.

It uses first 8 characters from the

generated MD5 hash code.

5/24/2012 12

Page 13: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Word Dictionary

It is mapping from word_id generated

using MD5 hashing explained previously to

the string word.

All dictionary related data is stored using

on-disk Binary Tree data structure

implemented in JDBM Project.

5/24/2012 13

Page 14: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Inverted Index

An inverted index refers to mapping of

the word to the set of documents where

the word appears.

It consists of two basic components:

Document Dictionary

Posting List

5/24/2012 14

Page 15: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Document Dictionary

It contains details for each document in the

collection and has mapping from doc_id to

the details of the document.

Followings are the fields stored in Doc

Dictionary:

Field Info Used for

url Actual Link to the document Providing live link in search

result

file Archive file where it is stored Locating archive file in

order to load cached

result from archive file

offset Offset at which it is stored in

archive file

Locating record referring

to the document within

archive file

length Length of the record in archive

file

Determining length of the

document

title Title of the Document if present Title of the search result

desc Description found in meta tag

of the page to generate

snippet of the result

Snippet of the search

result

5/24/2012 15

Page 16: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Posting List

It contains information about occurrence of

words within collection of documents and

mapping from the word to collection of

documents where it appears.

Followings are the fields stored in the Posting

List:

Field Info

word_id MD5 hashed word to uniquely

identify the word

doc_id MD5 hashed document URL to

uniquely identify the document

element HTML element where the word

occurred in the document

count Frequency of the word in the given

document

length Length of the HTML element where

the word appeared in the

document

5/24/2012 16

Page 17: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

BM25F Score

BM25F is used to rank structured documents like an XML or an HTML file.

The BM25F scoring function gives relevance score of a document for given query terms based on importance of the element in which the terms appear.

In order to reduce query time calculation for BM25F score, part of the calculation is done at indexing time.

5/24/2012 17

Page 18: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Weight

The weight of the term ‘t’ in the

document ‘d’ can be calculated as

shown in the following equation:

𝑤𝑒𝑖𝑔ℎ𝑡 𝑡, 𝑑 = 𝑜𝑐𝑐𝑢𝑟𝑠𝑡,𝑐

𝑑 . 𝑏𝑜𝑜𝑠𝑡𝑐

1 − 𝑏𝑐 + 𝑏𝑐 .𝑙𝑐𝑎𝑣𝑙𝑐

𝑐 𝑖𝑛 𝑑

Term Explanation

𝑜𝑐𝑐𝑢𝑟𝑠𝑡,𝑐𝑑 Term frequency of term ‘t’ in

document ‘d’ in field ‘c’

𝑏𝑜𝑜𝑠𝑡𝑐 Boost factor applied to field ‘c’

𝑏𝑐 Constant related to the field length

𝑙𝑐 Field length

𝑎𝑣𝑙𝑐 Average length for the field ‘c’

5/24/2012 18

Page 19: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Inverse Document Frequency

Inverse Document Frequency of the term

‘t’ can be derived using following

function:

𝑖𝑑𝑓 𝑡 = log𝑁 − 𝑑𝑓 𝑡 + 0.5

𝑑𝑓 𝑡 + 0.5

Term Explanation

N Number of documents in the

collection

df(t) Number of documents where term

‘t’ appears (Document Frequency)

5/24/2012 19

Page 20: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Final Scoring

Finally, we use the Weight and Inverse

Document Frequency calculated for

each query term and use them in below

equation to calculate final BM25F score of

the document for given query

𝑅 𝑞, 𝑑 = 𝑤𝑒𝑖𝑔ℎ𝑡(𝑡, 𝑑)

𝑘1 +𝑤𝑒𝑖𝑔ℎ𝑡(𝑡, 𝑑) . 𝑖𝑑𝑓(𝑡)

𝑡 𝑖𝑛 𝑞

Term Explanation

weight(t,d) Weight of term ‘t’ over all fields for

document ‘d’

𝑘1 Free parameter

idf(t) Inverse Document Frequency term

‘t’ over collection of documents

5/24/2012 20

Page 21: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Searching Module

The Query Module

The Load Cache Module

The Settings Module

5/24/2012 21

Page 22: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

The Query Module

Main Searching module to type in queries

and retrieve results based on that query.

Retrieves results from index using

IndexReader supporting class from

Indexing.

5/24/2012 22

Page 23: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

The Query Module internals

5/24/2012 23

Page 24: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

The Load Cache Module

Takes request from Query Module to load

archived version of the selected

document.

Goes to archive files and retrieves the

document as it was stored when crawled.

5/24/2012 24

Page 25: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Load Cache Module Working Diagram

5/24/2012 25

Page 26: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

The Settings Module

Provides user with option to change

parameters related to the index and

archive files.

The Query Module and The Load Cache

Module refers to the settings saved using

this module.

5/24/2012 26

Page 27: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Settings available to users

5/24/2012 27

Setting Option Default Value

jobs_path Path to jobs folder

where archive jobs are

stored

Jobs/

job_id The job id in the

jobs_path to refer

01/

arcs_dir Path to directory

containing archive files

relative to jobs_path.

Arcs/

index_dir Path to directory

containing the index file

relative to jobs_path

Index/

index_name Name of the index file MyIndex

debug_flag Prints debugging

information on console

false

Page 28: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Settings Module Working Diagram

5/24/2012 28

Page 29: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Testing and Results

Indexing Test:

Indexing performance was tested by indexing

38 archive files of size 3.49GB. These archive files

were retrieved from a Heritrix crawl ran on April

11, 2011 on sjsu.edu domain.

It took around 13887 seconds to create index for

38 archive files of total size 3.49GB. It retrieved

24109 html documents out of those archive files

and created inverted index based on them. Size

of created index is roughly ~700MB.

5/24/2012 29

Page 30: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Searching Test

Perform speed test by providing different

search queries to retrieve result from index

created in Indexing Test.

Measure number of results, and time

required to retrieve the records, build the

search result and deliver it to the user.

5/24/2012 30

Query

No. of

Results Time Taken

google 114 0.232

mechanical and aerospace engineering 667 0.32

department of computer science 2782 0.7

clark hall 238 0.424

Search 760 0.236

san jose state university 7561 1.135

Page 31: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Time taken to retrieve result increases as more

terms are added in the search query

5/24/2012 31

0

0.2

0.4

0.6

0.8

1

1.2

google mechanical

and

aerospace

engineering

department

of computer

science

clark hall search san jose

state

university

Time Taken

Time Taken

Page 32: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

5/24/2012 32

Combining results for both graphs shows that the time

taken to retrieve results increases as we introduce more

terms in search query or there are more results to return.

0

1000

2000

3000

4000

5000

6000

7000

8000

google mechanical

and

aerospace

engineering

department

of computer

science

clark hall search san jose

state

university

No. of Results

No. of Results

Page 33: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Conclusion

Full-Text Indexing for Heritrix, in

combination with Heritrix, provides

everything one may need to create

searchable archives.

It can be used for archiving different

versions of web, and providing keyword-

based search for them.

5/24/2012 33

Page 34: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Questions?

5/24/2012 34

Page 35: Full-Text Indexing For Heritrix...Full-Text Indexing For Heritrix Project Advisor: Dr. Chris Pollett Committee Members: Dr. Mark Stamp Dr. Jeffrey Smith Darshan Karia CS298 – Master’s

Demo!

5/24/2012 35