41
Arsitektur Teknologi Informasi Arsitektur Search Engine Antonius Rachmat C

ati7 - Arsitektur Search Engine [Compatibility Mode]

Embed Size (px)

Citation preview

Page 1: ati7 - Arsitektur Search Engine [Compatibility Mode]

Arsitektur Teknologi Informasi

Arsitektur Search Engine

Antonius Rachmat C

Page 2: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search engine

Page 3: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search Engine Statistics Jan 2012

Page 4: ati7 - Arsitektur Search Engine [Compatibility Mode]

Searches Searches

per Day

Page 5: ati7 - Arsitektur Search Engine [Compatibility Mode]

SE Statistics

Page 6: ati7 - Arsitektur Search Engine [Compatibility Mode]

Purpose of Search Engines

• Helping people find what they’re looking for

– Starts with an “information need”

– Convert to a query

– Gets results

6

UCB SIMS 202, Sept. 2004Avi Rappoport, Search Tools Consulting

– Gets results

• Materials available in:

– Web pages

– Image, Flash, Audio, Video

– Any other format

Page 7: ati7 - Arsitektur Search Engine [Compatibility Mode]

Searching example

• pizza AND pepperoni AND ham AND NOT olives AND NOT garlic

• “Carilah link ke semua pages yang meliputi kata pizza seperti halnya kata pepperoni dan kata pizza seperti halnya kata pepperoni dan kata ham, tetapi mengabaikan pages yang mengandung kata zaitun atau kata garlic.”

Page 8: ati7 - Arsitektur Search Engine [Compatibility Mode]
Page 9: ati7 - Arsitektur Search Engine [Compatibility Mode]
Page 10: ati7 - Arsitektur Search Engine [Compatibility Mode]

Why Searches Fail

• Empty search

• Nothing on the site on that topic (scope)

• Misspelling or typing mistakes

• Vocabulary differences

10

UCB SIMS 202, Sept. 2004Avi Rappoport, Search Tools Consulting

• Vocabulary differences

• Missed search defaults

• Missed search choices

• System fail

Page 11: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search engine problem

• Human maintenance

– Subjective

• Example: Ranking hits based on $$$

• Automated search engines• Automated search engines

– Quality of result

• Searching process

– High quality results aren’t always at the top of the list

Page 12: ati7 - Arsitektur Search Engine [Compatibility Mode]

Standard Web Search Engine Architecture

crawl theweb

create an

Check for duplicates,store the documents

user

DocIds

create an index

index

Search engine servers

userquery

Show results To user

Page 13: ati7 - Arsitektur Search Engine [Compatibility Mode]

How it works?

• Typically, a search engine works by sending out a

spider to fetch as many documents as possible.

• Another program, called an indexer, then reads

these documents and creates an index based on the these documents and creates an index based on the

words contained in each document.

• Each search engine uses a proprietary algorithm to

create its indices such that, ideally, only meaningful

results are returned for each query.

Page 14: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search

Engine

ArchitecArchitec

ture (2)

Page 15: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search Engine Characteristics

• Unedited – anyone can not enter content– Quality issues; Spam

• Varied information types– Audio, video, flash, book, brochures, catalogs,

dissertations, news reports, weather, all in one place!dissertations, news reports, weather, all in one place!

• Different kinds of users– Lexis-Nexis: Paying, professional searchers

– Online catalogs: Scholars searching scholarly literature

– Web: Every type of person with every type of goal

• Scale– Hundreds of millions of searches/day; billions of docs

Page 16: ati7 - Arsitektur Search Engine [Compatibility Mode]

Web Search Queries

• Web search queries are short:

– ~2.4 words on average (Aug 2000)

– Has increased, was 1.7 (~1997)

• User Expectations:• User Expectations:

– Many say “The first item shown should be what I

want to see!”

– This works if the user has the most

popular/common word

Page 17: ati7 - Arsitektur Search Engine [Compatibility Mode]

Search engine Ranking?

• Combining subsets of:

– IR-style relevance: based on term frequencies,

proximities, weightening, position (e.g., in title),

font, etc.

Popularity information – Popularity information

– Link analysis information

• Most use a variant of vector space ranking to

combine these

Page 18: ati7 - Arsitektur Search Engine [Compatibility Mode]

Relevance: Going Beyond IR

• Page “popularity” (e.g., DirectHit)

– Frequently visited pages (in general)

– Frequently visited pages as a result of a query

• Link “co-citation” (e.g., Google)Link “co-citation” (e.g., Google)

– Which sites are linked to by other sites?

– Draws upon sociology research on bibliographic citations to identify “authoritative sources”

• Using IR

– Tokenisasi, Stemming, Stopwords, Bobot, Feature Selection, Data mining method, evaluation

Page 19: ati7 - Arsitektur Search Engine [Compatibility Mode]

How Index files

Are Created

• Periodically rebuilt

• Documents are parsed to extract tokens. These are saved with the Document ID.

Term Doc #now 1is 1the 1time 1for 1all 1good 1men 1to 1come 1to 1the 1aid 1of 1their 1country 1

Now is the timefor all good men

to come to the aidof their country

Doc 1

It was a dark andstormy night in

the country manor. The time was past midnight

Doc 2

country 1it 2was 2a 2dark 2and 2stormy 2night 2in 2the 2country 2manor 2the 2time 2was 2past 2midnight 2

Page 20: ati7 - Arsitektur Search Engine [Compatibility Mode]

How Index

Files are

Created

• After all

documents have

been parsed the

Term Doc #a 2aid 1all 1and 2come 1country 1country 2dark 2for 1good 1in 2is 1it 2manor 2men 1midnight 2

Term Doc #now 1is 1the 1time 1for 1all 1good 1men 1to 1come 1to 1the 1aid 1of 1their 1country 1

been parsed the

index file is sorted

alphabetically.

midnight 2night 2now 1of 1past 2stormy 2the 1the 1the 2the 2their 1time 1time 2to 1to 1was 2was 2

country 1it 2was 2a 2dark 2and 2stormy 2night 2in 2the 2country 2manor 2the 2time 2was 2past 2midnight 2

Page 21: ati7 - Arsitektur Search Engine [Compatibility Mode]

How Index

Files are

Created

• Multiple term entries for a single document

Term Doc # Freqa 2 1aid 1 1all 1 1and 2 1come 1 1country 1 1country 2 1dark 2 1for 1 1good 1 1in 2 1is 1 1it 2 1manor 2 1men 1 1

Term Doc #a 2aid 1all 1and 2come 1country 1country 2dark 2for 1good 1in 2is 1it 2manor 2men 1midnight 2night 2single document

are merged.

• Within-document term frequencyinformation is compiled.

men 1 1midnight 2 1night 2 1now 1 1of 1 1past 2 1stormy 2 1the 1 2the 2 2their 1 1time 1 1time 2 1to 1 2was 2 2

now 1of 1past 2stormy 2the 1the 1the 2the 2their 1time 1time 2to 1to 1was 2was 2

Page 22: ati7 - Arsitektur Search Engine [Compatibility Mode]

How Index Files are Created

• Finally, the file can be split into

– A Dictionary or Lexicon file (semua term/token yg

unik dan jumlah dokumen yang menghasilkannya)

– A Postings file (asal term / token per dokumen dan – A Postings file (asal term / token per dokumen dan

frekuensinya)

Page 23: ati7 - Arsitektur Search Engine [Compatibility Mode]

How Inverted Files are Created

Dictionary/Lexicon PostingsTerm Doc # Freqa 2 1aid 1 1all 1 1and 2 1come 1 1country 1 1country 2 1dark 2 1for 1 1good 1 1in 2 1is 1 1

Doc # Freq2 11 11 12 11 11 12 12 11 11 1

Term N docs Tot Freqa 1 1aid 1 1all 1 1and 1 1come 1 1country 2 2dark 1 1for 1 1good 1 1in 1 1is 1 1

it 2 1manor 2 1men 1 1midnight 2 1night 2 1now 1 1of 1 1past 2 1stormy 2 1the 1 2the 2 2their 1 1time 1 1time 2 1to 1 2was 2 2

1 12 11 12 12 11 12 12 11 11 12 12 11 22 21 11 12 11 22 2

in 1 1is 1 1it 1 1manor 1 1men 1 1midnight 1 1night 1 1now 1 1of 1 1past 1 1stormy 1 1the 2 4their 1 1time 2 2to 1 2was 1 2

Page 24: ati7 - Arsitektur Search Engine [Compatibility Mode]

The indexes• For each term, the index is consisting of:

– document ID

– frequency of term in doc (optional)

– position of term in doc (optional)

• These lists can be used to solve Boolean queries:• These lists can be used to solve Boolean queries:

• country -> d1, d2

• manor -> d2

• country AND manor -> d2

• Also used for statistical ranking algorithms

Page 25: ati7 - Arsitektur Search Engine [Compatibility Mode]

Storage Strategy

• The indexes are still used, even though the web is so huge.

• Some systems partition the indexes across different machines.

Using distributed database– Using distributed database

– Each machine handles different parts of the data.

– Other systems duplicate the data across many machines; queries are distributed among the machines.

– Most do a combination of these.

Page 26: ati7 - Arsitektur Search Engine [Compatibility Mode]

Ranking system: Link Analysis

• Assumptions:

– If the pages pointing to this page are good, then this is also a good page

– The words on the links pointing to this page are useful indicators of what this page is aboutindicators of what this page is about

• Why does this work?

– The official Toyota site will be linked to by lots of other official (or high-quality) sites

– The best Toyota fan-club site probably also has many links pointing to it

Page 27: ati7 - Arsitektur Search Engine [Compatibility Mode]

Page Rank

• Sebuah situs akan semakin populer jika semakinbanyak situs lain yang meletakan link yang mengarahke situsnya, dengan asumsi isi/content situs tersebutlebih berguna dari isi/content situs lain.

• PageRank dihitung dengan skala 1-10.• PageRank dihitung dengan skala 1-10.

• Sebuah halaman juga akan menjadi semakin penting jika halaman lain yang memiliki rangking (pagerank) tinggi mengacu ke halaman tersebut.

• Jika sebuah situs yang mempunyai Pagerank 9 akan diurutkan lebih dahulu dalam list pencarian Google daripada situs yang mempunyai Pagerank 8 dankemudian seterusnya yang lebih kecil.

Page 28: ati7 - Arsitektur Search Engine [Compatibility Mode]

Ranking: PageRank

• Google uses the PageRank

• We assume page A has pages T1...Tn which point to it (i.e., are citations).

• The parameter d is a damping factor which can be set between 0 and 1. d is usually set to 0.85.

• C(A) is defined as the number of links going out of page • C(A) is defined as the number of links going out of page A.

• PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

• So to be included in Google’s top ranked results a page

• must have lots of votes from outside

• votes cast by pages that have received many votes of their own.

Page 29: ati7 - Arsitektur Search Engine [Compatibility Mode]

PageRank

T1Pr=.725Pr=.725 T4

T3Pr=1Pr=1X1 X2

A

Note: these are not real PageRanks, since they include values >= 1

T2Pr=1Pr=1

T6Pr=1Pr=1

T5Pr=1Pr=1

Pr=1Pr=1

T7Pr=1Pr=1

T8T8Pr=2.46625Pr=2.46625

APr=4.2544375Pr=4.2544375

Page 30: ati7 - Arsitektur Search Engine [Compatibility Mode]

Web Crawlers

• How do the web search engines get all of the items they index?

• Main idea:

– Start with known sites– Start with known sites

– Record information for these sites

– Follow the links from each site

– Record information found at new sites

– Repeat

• 1 doc per minute per crawling server

Page 31: ati7 - Arsitektur Search Engine [Compatibility Mode]

Crawler Indexing Diagram

31

UCB SIMS 202, Sept. 2004Avi Rappoport, Search Tools Consulting

Source:

Page 32: ati7 - Arsitektur Search Engine [Compatibility Mode]

What the Index Needs

• Basic information for document or record

– File name / URL / record ID

– Title or equivalent

– Keywords

UCB SIMS 202, Sept. 2004Avi Rappoport, Search Tools Consulting

– Size, date, MIME type

• Full text of item

• More metadata

– Product name, picture ID

– Category, topic, or subject

– Other attributes, for relevance ranking and display

Page 33: ati7 - Arsitektur Search Engine [Compatibility Mode]

Web Crawling Issues

• Keep out signs

– A file called norobots.txt / robots.txt

– Figure out which pages change often, and recrawl

these often.

• Duplicates, virtual hosts, etc.• Duplicates, virtual hosts, etc.

– Convert page contents with a hash function

– Compare new pages to the hash table

• Lots of problems

– Server unavailable; incorrect html; missing links;

Page 34: ati7 - Arsitektur Search Engine [Compatibility Mode]

Robots.txt

• Protocol for giving spiders (“robots”) limited

access to a website, originally from 1994

– www.robotstxt.org/wc/norobots.html

• Website announces its request on what • Website announces its request on what

can(not) be crawled

– For a URL, create a file URL/robots.txt

– This file specifies access restrictions

Page 35: ati7 - Arsitektur Search Engine [Compatibility Mode]

Contoh

Page 36: ati7 - Arsitektur Search Engine [Compatibility Mode]

• Invented by Larry Page and Sergey Brin

• Online in 1998

• Mission: to organize the world’s information and make it

universally accessible and useful

• How google finds data?

The Google Search Engine

• How google finds data?

• Using spider GoogleBot

• Using site submission

Page 37: ati7 - Arsitektur Search Engine [Compatibility Mode]

Google Data Components

• Google BigFiles

• Google Repository

–Use zlib to compress–Use zlib to compress

• Google Lexicon

–Word base

• Document Indexing

–Page Rank Algorithm

Page 38: ati7 - Arsitektur Search Engine [Compatibility Mode]

Google File System (GFS)

• BigFiles

– A.k.a. Google’s Proprietary Filesystem

– 64-bit addressable

– Compression zlib

– GFS:

http://labs.google.com/papers/gfs.html

Page 39: ati7 - Arsitektur Search Engine [Compatibility Mode]

Google File System Architecture

• A master process maintains the metadata• A lower layer (i.e. a set of chunkservers) stores the data in unit called chunks

Page 40: ati7 - Arsitektur Search Engine [Compatibility Mode]

Google Lexicon

• Lexicon

– Contains > 14 million words

– Implemented as a hash table of pointers to words

• Why is it important to have a lexicon?• Why is it important to have a lexicon?

– Tokenization

– Analysis

– Language Identification

– SPAM

Page 41: ati7 - Arsitektur Search Engine [Compatibility Mode]

Next

• Business Process and Information Systems