CA2620770A1 - Local search - Google Patents

Local search

Info

Publication number
CA2620770A1
CA2620770A1 CA002620770A CA2620770A CA2620770A1 CA 2620770 A1 CA2620770 A1 CA 2620770A1 CA 002620770 A CA002620770 A CA 002620770A CA 2620770 A CA2620770 A CA 2620770A CA 2620770 A1 CA2620770 A1 CA 2620770A1
Authority
CA
Canada
Prior art keywords
address
local search
data
information
search query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002620770A
Other languages
French (fr)
Inventor
Kun Shing Luk
Huican Zhu
Hongjun Zhu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US71214605P priority Critical
Priority to US60/712,146 priority
Application filed by Google LLC filed Critical Google LLC
Priority to PCT/US2006/033537 priority patent/WO2007027608A2/en
Publication of CA2620770A1 publication Critical patent/CA2620770A1/en
Application status is Abandoned legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce, e.g. shopping or e-commerce
    • G06Q30/02Marketing, e.g. market research and analysis, surveying, promotions, advertising, buyer profiling, customer management or rewards; Price estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Abstract

A system receives yellow page data, map provider data, and document data in response to a local search query, and geocodes the data to assign a geographic idetifier and to match at least one address associated with the local search query. The system also index the geocoded data to determine business information and location information associated with thee local search query.
The system further provides local search results and a map based on the indexed data (Figure 1).

Description

LOCAL SEARCH
BAKGROUIND
Implementations described herein relate generally to information retrieval, and, inore particularly, to identifying local search results.
The World Wide Web ("web") contains a vast amount of information. Locating a desired portion of the information, however, may be challenging. This problem may be compounded because the amount of information on the web and the number of new users inexperienced at web searching are growing rapidly.
Search systems attempt to return hyperlinks to web pages in which a user is interested. Generally, search systems base their determination of the user's interest on search terms (called a search query) entered by the user. The goal of the search system may be to provide links to high quality, relevant results (e.g., web pages) to the user based on the search query. Typically, the search system accoinplishes this by matching the terins in the search query to a corpus of pre-stored web pages. Web pages that contain the user's search terms may be referred to as "hits" or "search results" and may be returned to the user as links.
Local search systems atteinpt to return relevant web pages and/or business listings within a specific geographic area. In some countries, detailed address information is not available for some businesses. As a result, performing local searches may be difficult.
SUMMARY
Accord'uig to one aspect, a method may include receiving yellow page data, tliird-party map provider data, and document data in response to a local search query, and geocoding at least one of the yellow page data, the third-party map provider data, and the document data to assign a geographic identifier to and to match at least one address within the local search query. The method may also include indexhig the geocoded data to identify business information and location information corresponding to the local search query, and providing local search results and a third-party map based on the identified business information and location information.
According to another aspect, a method of geocoding based on a local searcll query may include receiving third party map provider data and yellow page data, generating an address based on the local search query, parsing the address, locating longest matching prefixes in the address to identify at least one portion of the address, and locating a combination in the address to verify the address.
According to yet another aspect, a method of indexing based on a local search query may include preprocessing yellow page data to a predetennined format, extracting business information from document data, storing the business information in a repository, and indexing address information from third party map provider data. The method may also include clustering the yellow page data and the third party map provider data, and highlighting snippets in the docuinent data. For a poiiit location, the method may include setting a search distance for the local search query to a predetermined distance. For a bound location, the method may further include setting the search distance to approximately a maximum distance from a centroid of the bound location to corners of the bound location.
According to a further aspect, a method may include generating a list of synonyms related to a local search queiy, rewriting the local search query to expand the query, generating local search results based on the expanded query, obtaining a map fiom a third party map provider based on the local search results, and generating advertisements based on geographical inforination related to the local search results.
According to another aspect, a system may include an indexer to receive third party map provider data, yellow page data, and document data, preprocess the yellow page data to determine business information, ,...., ~,...,, e trao#'bus'ines'S iYT o'rfndtibn ''bm tile document data, identify location information in a local search query, and index address data of the third party map provider data. The system may also include a geocoder to receive information fi=om the indexer, and assign geographic identifiers, and a front end server to receive information from the geocoder, rewrite the local search queiy, obtain a map fi=om the tllird party map provider data, and generate local search results based on the local search query.
According to yet another aspect, a system inay include means for receiving yellow page data, tliird-party map provider data, and document data in response to a local search query, and means for geocoding at least one of the yellow page data, the third-party map provider data, and the document data to assign a geographic identifier to and to match at least one address within the local search queiy. The system may also include means for indexing the geocoded data to identify business information and location information corresponding to the local search query, and means for providing local search results and a third-party map based on the identified business infoi7nation and location information.
According to a further aspect, a system may include a memory to store a group of instructions, and a processor to execute instructions in the memory. The processor may identify a location associated with a local search query, identify local search results relevant to the local search queiy and associated with the identified location, identify an identifier for each of a group of the local search results, and receive from a third party map provider a map associated with the identified location, where the map identifies a position of at least one local search result in the group of local search results.
According to a still further aspect, a method.may include receiving a local search query, identifying a-location associated with the local search query, identifying a set of search results relevant to the local search query and associated with the identified location, and identifyinig an identifier for each of a group of the search results. The method may also include providing the identifier for each of the group of the search results to a third party map provider, and receiving from the third party map provider a map associated with the identified location, where the map identifies a position of at least one search result in the group of search results.
Accord'uig to another aspect, a method may include generating a list of tokens, identifying a potential address within a web document, and parsing the potential address from a beginning to determine whether the potential address includes a token associated with a city. The method may also include further parsing the potential address to determnie whether the potential address includes a token associated with a district, identifying a longest-matching token in the potential address after the token associated with the city or the token associated with the district, and determining whether the potential address is an actual address based on the token associated with the city, the token associated with the district, and the identified longest-matching token.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, explain aspects of the invention. In the drawings:
Fig. 1 is a diagram of an overview of an exemplary implementation described herein;
Fig. 2 is a diagram of an exemplaiy, network in which systems and methods described herein may be implemented;
Fig. 3 is an exemplary diagram of a client or server within the exemplary network of Fig. 2;
Fig. 4 is a functional block diagram of an exemplary system for identifying local search results and providing a map associated with identified locations;

-2-fi,,.== if.~,. I =.,=' ~1 .::::u u...n u.:;u :aF ; r .r ig ~YS"~'.n='~=x~'mplaf ~ dia~~ df an index/document repository of the exeinplary systein of Fig. 4;
Fig. 6 is an exemplary diagram of a geocoder of the exemplaiy system of Fig.
4;
Fig. 7 is an exemplary diagram of an indexer of the exemplaiy system of Fig.
4;
Fig. 8 is an exemplary diagram of a front end server of the exemplary system of Fig. 4;
F=ig. 9 is a diagram of exemplaiy local search results and a map generated by the exemplary system of Fig. 4; and Figs. 10A-10D is a flowchart of an exemplary process for identifying local search results and providing a map associated with identified locations.
DETAILED DESCRIPTION
The following detailed description of the invention refers to the accompanying drawings. The same reference nuinbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
In some countries, like China, for example, map data and yellow page data may not be available fi=om a single provider and must be obtaiiied from several different providers: Due to export restrictions, it may not be possible to get detailed map data to render the map of an area or to get the actual latitude and longitude of addresses within the area, As a result, address approximation may be used for geocoding of addresses. When results from a local search are sent to a user, the local results page may include a list of relevant results and a pointer to a map provider's server (tllird party). The map provider may be responsible for generating the map displayed to the user.
OVERVIEW
Iinplementations described herein may identify local search results and generate a map associated with identified locations. For example, in one impleinentation, as shown in Fig. 1, a system may receive a local search query input by a user, and may identify a location associated with the local search query. The system may identify a set of local search results (e.g., search results "A"
through "H") that may be related to the local search query and may be associated with the identified location. The local search results may include links to documents that may be related to the local search query. The system may identify an identifier for a group of local search results, and may provide the identifier to a map provider. The system may receive a map associated with the identified location from the map provider. The map may identify a position of at least one search result (e.g., search result "A" as shown in Fig, 1) in the group of local search results.
A "document," as the terin is used herein, is to be broadly interpreted to include any machine-readable and machine-storable work product. A document may include, for example, an e-mail, a file, a combination of files, one or more files with einbedded links to other files, a news group posting, a blog, a web advertisement, etc. In the context of the Internet, a common document is a web page. Web pages often include textual information and may include embedded information (such as meta information, images, hyperlinks, etc.) and/or einbedded instructions (such as Javascript, etc.).
A"linlc," as the term is used herein, is to be broadly interpreted to include any reference to/from a document from/to another document or another part of the same document.

EXEMPLARY NETWORK CONFIGURATION
Fig. 2 is an exemplary diagram of a networlc 200 in which systems and methods described herein may be implemented. Network 200 may include multiple clients 210 connected to multiple servers 220-240 via a network 250. Two clients 210 and tluee servers 220-240 have been illustrated as connected to network 250

-3-for s If. .~city: ~ I .e 'erdi .....h~i ......y. .. . b'e ~ m..phn'p ~ l~bt '~;"ti itrore or fewer clients and servers. Also, in some instances, a client may perform one or more functions of a server and/or a server may perforin one or more functions of a client.
Clients 210 may include client entities. An entity may be defined as a device, such as a personal computer, a wireless telephone, a personal digital assistant (PDA), a lap top, or anotller type of coinputation or communication device, a thread or process rumling on one of these devices, and/or an object executable by one of these devices. Servers 220-240 may includf: server entities that gather, process, search, and/or maintain documents.
In one implementation, server 220 may include a local search system 225 usable by clients 210.
Server 220 may crawl a corpus of documents, nidex the documents, and store information associated with the documents in a repository of docuinents. Any combination of servers 220-240 may implement local search system 225 to identify local search results and provide a map associated with identified locations.
While servers 220-240 are shown as separate entities, it may be possible for one or more of servers 220-240 to perforin one or more of the functions of another one or more of servers 220-240. For example, it may be possible that two or more of servers 220-240 are iinplemented as a single server. It may also be possible for a single one of servers 220-240 to be iinplemented as two or more separate (and possibly distributed) devices.
Network 250 may include a local area networlc (LAN), a wide area network (WAN), a telephone network, such as the Public Switched Telephone Network (PSTN) or a cellular network, an intranet, the Internet, or a combination of networks. Clients 210 and servers 220-240 may connect to network 250 via wired, wireless, and/or optical coiuiections.
EXEMPLARY CLIENT/SERVER ARCHITECTURE
Fig. 3 is an exemplary diagrain of a client or server entity (hereinafter called "client/server entity"), which may correspond to one or more of clients 210 and servers 220-240. The client/server entity may include a bus 310, a processor 320, a main memory 330, a read only memory (ROM) 340, a storage device 350, an input device 360, an output device 370, and a communication interface 380. Bus 310 may include a path that permits communication among the eleinents of the client/server entity.
Processor 320 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Main memory 330 may include a random access memoiy (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 320. ROM 340 may include a ROM device or another type of static storage device that may store static hiformation and instructions for use by processor 320. Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device 360 may include a mechanism that permits an operator to input information to the client/server entity, such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc.
Output device 370 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 380 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 380 may include inechanisms for coinmunicating with anotiler device or system via a network, such as network 250.
The client/server entity may perfonn certain operations, as will be described in detail below. The client/server entity may perform these operations in response to processor 320 executing software instructions contained in a computer-readable tnedium, such as memory 330. A computer-readable medium may be

-4-~;.... ;;_.., .: ., .,._,. ,.._õ ,,...,.
defiri'eda's a'physica orYogical memoiy device and/or carrier wave.
The software instructions may be read into memory 330 from another computer-readable medium, such as data storage device 350, or from another device via communication interface 380. The software instructions contained in memory 330 may cause processor 320 to perfonn processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, iinplementations described herein are not limited to any specific combination of hardware circuitry and software.
EXEMPLARY LOCAL SEARCH SYSTEM
Fig. 4 is a functional block diagram of an exemplary system (e.g., local search system 225) for identifying local search results and providing a map associated with identified locations. According to one implementation, one or more of the functions of system 225, as described below, may be performed by a server (e.g., server 220), a portion of server 220, or a combination of servers (e.g., servers 220-240).
According to another implementation, one or more of these functions may be performed by an entity separate from server 220, such as a client (e.g., client 210), a coinputer associated witli server 220 or one of servers 230 or 240.
As shown in Fig. 4, system 225 may include map provider data 400, yellow page data 405, web document data 410, an index/document repository 415, address and points of interest (POI) identification (ID) information 420, address fmgerprint (FP) and POI ID mapping information 425, a geocoder 430, an indexer 435, a front end server 440, map Uniforin Resource Locator (URL) in.formation 445, and local search results 450. Map provider data 400, yellow page data 405, and web document data 410 may be provided to indexer 435, and map provider data 400 may further be used to derive address/POI ID
infonnation 420 and address FP
and POI ID mapping inforniation 425. Indexer 435 may connect to index/document repository 415 and geocoder 430, and address/POI ID information 420 may be provided to geocoder 430. Front end server 440 may connect to geocoder 430 and index/document repository 415, and my receive address FP and POI ID
mapping information 425. Front end server 440 may generate map URL information 445 and local search results 450. System 225 may altenzatively include other connections and/or component interrelations not shown in Fig. 4.
Generally, geocoder 430 may receive address/POI ID information 420 and/or information from indexer 435, may assign geographic identifiers (e.g., locations, coordinates, etc.) to objects, and may provide outputs to front end server 440. Indexer 435 may receive map provider data 400, yellow page data 405, and/or web document data 410, may preprocess yellow page data 405 to determine business information, extract business information from web document data 410, identify location information in a search queiy, index the address data of map provider data 400, and may provide outputs to index/document repository 415 and/or geocoder 430. Front end server 440 may receive address FP and POI ID
information 425, inforination from geocoder 430, and/or infonnation from index/docuinent repository 415, may rewrite the search query, and may generate map URL information 450, local search results 450, and/or geographical information for use by an advertisements (ads) server (not shown).
Map Provider Data There may be two kinds of data for Chinese address information: map data and yellow page data.
Map provider data 400 may include a variety of information. For example, in one implementation, a third party map provider may provide a set of POIs (e.g., businesses and otlier places of interest, such as znuseums, parks, hospitals, schools, etc.) and their addresses for cities in China.
There may be associated POI ID

-5-.. ,. .. .:..... ...... ."..'D_õ ., ., informa'tio n"foi eacli. u_.e,, to 1'ega'T i e~ti'ietibns, the map provider may not provide latitude and longitude information for each POI. They may, however, divide a map into grids (e.g., three-hundred meter by three-hundred meter grids) and may provide a grid index for each POI and a prograin to compute the distance between the grids. Map provider data 400 may be updated periodically (e.g., daily, weekly, monthly, etc.), and, during each update, the POI ID may change.
In another implementation, map provider data 400 may include the following information: (1) a normal POI that may contain a business name, address, telephone number, and grid index; (2) a road POI that may contain a street name and grid index of the center of the street; and/or (3) a postal code POI that may contain postal codes and a grid index of the approximate center of the postal codes.
.0 In still another iinplementation, there may be issues with map provider data 400. For example, map provider data 400 may contain one part of an address but may be missiag another part of the address. The street number, for example, may be missing fi=om map provider data 400 due to restrictions in China (e.g., only 20-30% of the POIs may have street numbers). As a result, map provider data 400 may include only the street name of the POI or some higher level of abstraction. Also, or alternatively, the telephone number may be .5 missing for some of the POIs of map provider data 400. Also, or alternatively, the addresses provided by map provider data 400 may be improperly formatted.
Yellow Pa eg Data Yellow page data 405 may include a variety of information and may be received from multiple sources (e.g., third party providers). For example, in one implementation, yellow page data 405 may include !0 address (e.g., county, city, province) and/or telephone number infonnation for POIs, business names, email addresses, facsimile numbers, web site addresses, CEO naines, business descriptions, SIC-style categories, types of businesses, etc. In another iunplementatiozi, yellow page data 405 may not contain any latitude and longitude information. As a result, complete (or substantially complete) information regarding the POIs (e.g., address, telephone number, and map position information) may be deduced from map provider data 400 and !5 yellow page data 405.
Web Document Data Web document data 410 may include a variety of information. For example, in one implementation web document data 410 may include an e-mail, a file, a coinbination of files, one or more files with einbedded liuilcs to other files, a news group posting, a blog, a web advertisement; a web page (which may include textual information and may include einbedded information (such as meta information, images, hyperlinks, etc.) and/or einbedded instructions (such as Javascript, etc.)), business information (e.g., address, telephone number, etc.), etc. Web document data 410 may also include documents located based on a local search query.
Address/POI ID Information Address/POI ID information 420 may include a variety of information. For example, in one implementation, address/POI ID information 420 may niclude addresses extracted from map provider data 400, POI IDs extracted from map provider data 400, etc. In another implementation, address POI ID
information 420 may include the following information regarding Chinese addresses: address data provided by map provider data 400 (e.g., addresses of POIs, streets centers); POIs (e.g., schools, parlcs, buildings, E0 hospitals, etc.); postal code centers (i.e., the center of an area covered by a postal code); additional cities that may not be included in the list provided by map provider data 400, etc.
Address FP and POI ID Mapping Information

-6-It~=.,- ~ ; !~ "= it...u .:;;n u...u n:::n .r= ;;;r!~ ;;;;;!r ;::::u _:::u ~
~Ac~di=ess FP drid"POT ID mfonriation 425 may include a variety of information. For example, in one implementation address FP/POI ID 'uiformation 425 may include a mapping between address fmgeiprints (FPs) and corresponding POI IDs, etc. The mappiug between the address FPs and corresponding POI IDs may be used by front end server 440 to loolcup the POI ID for each local search result, as described in detail below.
In an alternative implementation, POI IDs may be directly derived witllout mapping between address FPs and corresponding POI IDs. In such an alternative, information 425 may include the directly derived POI IDs.
Although exeinplary information included 'ui map provider data 400, yellow page data 405, web document data 410, address/POI ID inforination 420, and address FP/POI ID
mapping information 425 have been described above, in other implementations, additional or different information about addresses that may be useful to identify local search results may be included in the exemplary inforination.
Figs. 5-8 are exemplary diagrams of some coinponents of system 225 of Fig. 4.
Index/Document RepositorY
Index/document repositoiy 415 may be provided in a single storage device (e.g., main memoiy 330, ROM 340, atid/or storage device 350). Index/document repository 415, as shown in Fig. 5, may store a variety of information related to documents, yellow page data 405, and/or map provider data 400. For example, in one implementation, index/document repository 415 may store the followuig information regarding Chinese addresses: address data provided by map provider data 400 (e.g., addresses of POls, streets centers); POIs (e.g., schools, parks, buildings, hospitals, etc.); postal code centers (i.e., the center of an area covered by a postal code); additional cities that may not be included in the list provided by map provider data 400; etc.
In another implementation, as shown in Fig. 5, index/document repository 415 may include a [province] field 500, a [city] field 510, a [district] field 520, and a [street] field 530 (which may additionally or alternatively include an address field and/or a POI name field). The following examples may correspond to Chinese address information stored in index/document repository 415:
[BeiJing City] [XiCheng District] [BeiLiShi Road];
[BeiJing City] [HaiDian District] [YiHeYuan Road 5 Number];
[BeiJing City] [HaiDian District] [BeiJing University]; and [JiangSu Province] [NanJing City] [GuLou District] [HanZhong Road].
In still another implementation, in.dex/docuinent repository 415 may include an address fingerprint (FP) field 540 and an FP accuracy field 550. Each address may be treated as a point by geocoder 430 witli an address FP and FP accuracy (e.g., buildings may have a higlier FP accuracy than street centers). An address FP may be a fingerprint generated based on the address (e.g., a hash value that may be generated based on the address) that may be used to loolcup the POI ID for displaying the correct map. For example, an FP generator 570 may receive an address (e.g., [province] field 500, [city] field 510, [district] field 520, [street] field 530, etc.), and may generate an address FP (e.g., [FP] field 540) and a FP accuracy (e.g., [FP] accuracy field 550) based on the address. The address FP and FP accuracy may be used by a POI ID
loolcup table 580 to lookup the POI ID for displaying the correct map (e.g., with local search results).
FP generator 570 and/or POI ID
lookup table 580 may be provided in geocoder 430, indexer 435, or front end server 440.
In still a further nnplementation, index/docuinent repository 415 may include a [zcode] field 560 associated with the address. An associated zcode may include a code like a postal code, which in the case of China may be computed from the six digit administrative code for districts in China. Locations, such as JiangSu Provuice, BeiJing City, BeiJing City XiCheng District, may be computed by geocoder 430 as bounds that contain all the point locations within them.

-7-

8 PCT/US2006/033537 ";Vaiiants offlie'addresses'may'hlso be determined and stored in index/docuinent repository 415 to increase recall. For example, single character synonyms for the provinces and cities may be identified (e.g., Shanghai City -> Lu; HeBei Province 4 Qi). Additionally or alternatively, portions of the addresses may be omitted (e.g., Shanghai City 4 Shanghai; HaiDian District -> HaiDian; HuaiHai Central Road 4 HuaiHai Road). Additionally or alternatively, synonyms may be included for famous places (e.g., Shanghai City Temple -), Old City Tenlple; LiuRong Temple -> L iuRong Ta).
Although Fig. 5 shows exemplary inforination included in index/document repository 415, in other inlplementations, uldex/document repository 415 may include any information that may be useful to identify local search results.
Geocoder Geocoder 430, as sliown in Fig. 6, may perform a variety of tasks to aid in the identification of local search results. In one implementation, for exainple, geocoder 430 may assign geographic identifiers (e.g., locations, coordinates, etc.) to objects. For example, geocoder 430 may matcli addresses to addresses in index/document repositoiy 415. Output fiom geocoder 430 may be used for several purposes. For exatnple, yellow page data 405 may be parsed to determine business information (e.g., address, telephone number, email address, facsimile number, hours of operation, etc.) for POls, business information may be extracted from web document data 410, and/or location inforination provided in a search query may be identified.
In order to index yellow page data 405, indexer 435 inay need to determine the map position by looking at Chinese addresses. This may implicate a variety of issues.,.For exainple, accurate position and detailed address information for most of the addresses in China are not readily available. Chinese addresses do not have a well defined format and hierarchy. The possible components of a Chinese address may include city, district, town, village, road, street, street number, and building.
Yellow page data 405 may be in free form (i.e., not conforming to any particular form or format), especially in rural areas, and for some POIs, there are no corresponding address components available. Exemplary Chinese addresses may include:
ShenZhen City HeGang Town AnLiaiig Village AnLiang Road 172 Number JingCheng Building;
ShenZhen City LongHua Town MingZhiMingLe Office Complex;
ShenZhen City FuHong Road ShiMao Square Block A 17 Floor; and Beijing City HaiDian District SiJiQingXiaoFu.
Geocoder 430 may best match addresses in yellow page data 405 with addresses provided in map provider data 400, and obtain the most accurate map position possible.
Geocoder 430 may include an address list generator 600, a parser 610, a longest matching prefix locator 620, a combination locator 630, a query geocoding unit 640, etc. The components of geocoder 430 may perform a number of tasks for each address (e.g., ShenZhen City HeGang Town AnLiang Village AnLiang Road 172 Number JingCheng Building).
Address list generator 600 may receive map provider data 400 and yellow page data 405, and may generate an address list (also referred to as tokens) based on the provhlces, cities, districts, street names, addresses, POI names, or combinations thereof from map provider data 400 and/or yellow page data 405. For each address, parser 610 may attempt to parse the city from the begimiin.g of the address. For example, "ShenZhen City" may be parsed by parser 610 from the address. Parser 610 may also atteinpt to parse the district from the address. For example, since a district is absent from the exeinplary address described above, parser 610 may not be able to parse the district from the address.
Longest matching prefix locator 620 of geocoder 430 may be used to locate fiu=ther portions of the address. For example, longest inatching prefix locator 620 may attempt to locate the longest matching prefix ;,,; ,; ;; ,,;,, ; , ,,, ,,,.,, ,,,,, õ
, . ,. ,,,, (e:g., foken) froin the address ,list. This may fai l if there is not a specific token in the address list (e.g., if "HeGang Town" were not in the address list). Longest matching prefix locator 620 may advance to the end of the word "Town" if it is present in the address list. If an entire token (e.g., "HeGang Town AnLiang Village AnLiang Road") is present in the address list, longest matching prefix locator 620 may identify the token as a good match (e.g., "HeGang Town" may be identified as a good inatch). Longest matcbing prefix locator 620 may try again to locate the longest matching prefix (e.g., token) from the address list. If this fails, then longest matching prefix locator 620 may advance to the end of the word "Village" if it is present (e.g., "AnLiang Village"). Longest matching prefix locator 620 may repeat the process again to locate the longest matchuig prefix (e.g., token) from the address list. This tiine, longest matching prefix locator 620 may attempt to match street names (e.g., "Road" or "Street"). Longest matchulg prefix locator 620 may advance to the end of the word(s) "Road" or "Street," if they are present (e.g., "AnLiang Road").
Longest matching prefix locator 620 may also advance to the end of the word "Nuinber," if it is present (e.g., "172 Nwnber"). Finally, longest matching prefix locator 620 may atteinpt to locate the longest matching prefix (e.g., token) from the POI
naines. This may provide matches for naines of buildings, schools, parks, etc.
(e.g., "JingClieng Building").
Coinbination locator 630 may locate particular coinbinations so that POI names may be located first, then various levels of the addresses may be located, and, finally, districts or cities may be located. Such a locating arrangement may guarantee that the most specific address may be obtained by combination locator 630. For example, combination locator 630 may locate the following exeinplary coinbinations:
city + district + POI name;
city + district + address located by longest matching prefix locator 620 (e.g., "Road" or "Street");
city + district + address located by longest matching prefix locator 620 (e.g., "Village");
city + district + address located by longest matching prefix locator 620 (e.g., "Town");
city + district; and/or city When a local search queiy is entered by a user, the location part of the search query may be sent to a map server owned by a map provider. If the location query contains Chinese, Japanese, or Korean (CJK) characters, the inap server may send it to query geocoding unit 640 for geocoding. If the location entered by the user is ambiguous (e.g., when the score of the first result fiom the geocoder is less than twice the score of the second result), query geocoding unit 640 may present suggestions to the user. For example, if the location query is "History Museum," the query geocoding unit 640 may present the following suggestions to the user:
"Do you want to look for TianJian City HeDong District History Museum, or ShangHai City PuDong District ShangHai History Museum?"
Query geocoding unit 640 may compute the score of a search result based on the nuinber of points in the search result location. For example, if ChangChuan City ChaoYang District scores le=ss than Beijing City ChaoYang District, then Beijing City ChaoYang District may be displayed when the user's query location is "ChaoYang District."
Although Fig. 6 shows exemplary tasks performed by geocoder 430, in other implementations, geocoder 430 may perform additional or different tasks that may be used to identify local search results.
Furthermore, although Fig. 6 shows the components of geocoder 430 as interconnected, in other implementations, the components of geocoder 430 may be separate, non-iiiterconnected components.
Indexer Indexer 435, as shown in Fig. 7, may perform a variety of tasks to aid in the identification of local

-9-;,, ;; , ;,;; ;,;; ;;;;;= ; ;:::,= :;:;; :;:;;; :;,;; .;=
search'resulfs. In one unplementatton, for example, indexer 435 may preprocess yellow page data 405 to determine business information (e.g., address, telephone number, email address, facsimile number, hours of operation, etc.) for POIs, may extract business inforination from web document data 410, and/or may identify location information in a search query. Indexer 435 may include a map data indexer 700, a yellow page data preprocessor 710, a business itiformation extractor 720, a distance flattener 730, a clusterer 740, a business information repository 750, a snippet highlighter 760, etc.
Map data indexer 700 may index address data from map provider data 400, which may include map position inforination. Geocoder 430 may attempt to geocode the address again based on the indexed address data, and clusterer 740 (described below) may set the cluster position if the cluster position is different from the given position, but may not set the cluster position above a predetermined distance tlueshold (e.g., within three kilometers). Such an arrangement may be used for improvnig clustering, as described in detail below.
Yellow page data preprocessor 710 may receive yellow page data 405 fi=om the different providers, and may preprocess yellow page data 405 to a common format. This formatted data may be provided to geocoder 430 during indexing, and geocoder 430 may attempt to geocode the address. If the address can be geocoded to building or street level, the address may be indexed as a normal entry. If the address can be geocoded to city or district level, the address may be indexed as an entry witli an approximate position.
During scoring, the entry may be treated as if it is at least twenty kilometers from the centroid (i.e., essentially having its score demoted). If the address cannot be geocoded, the address may be treated as an entry without a position. During indexing, if the entry without a position may be clustered with another entry (e.g., using its telephone number), the entry may be retained. Otherwise, the entry may be discarded.
Business infonnation extractor 720 may extract business information (e.g., addresses and telephone numbers) from web document data 410 using a variety of techniques. The techniques may be modified based on the different forinatting of addresses and telephone numbers in China and Japan.
For example, in a first technique, business inforination extractor 720 may include a classifier that may analyze documents with addresses to determine business information associated with the addresses based on a statistical model. The documents analyzed by the classifier may include documents with addresses for which there is no corresponding yellow page data 405 and/or documents with addresses for which there is possibly incorrect yellow page data 405. The fimc-lions perfonned by the classifier may differ based on whether the business information corresponds to business name (title) information or telephone number information. Yet other functions may be perfonned when the business information includes information other than business name or telephone number inforination. A business name (title) may be identified by analyzing terms near the address and determining the probability that each term is part of the title. A confidence score may be assigned to each candidate title that is identified.
A telephone number may be associated with an address by identifying a set of candidate telephone nuinbers in the document. It may be determined, based on the statistical model, the probability that each of the candidate telephone numbers is associated with the address given the prediction regarding the preceding candidate telephone number and given a window of teims (e.g., looking at a predetermined number of terms to the left and/or right) around the candidate telephone nuinber. Confidence scores may be assigned to the candidate telephone nuinbers based on their determined probabilities.
Optionally, a best telephone number for the address may be determined. The telephone number inay then be associated with the address to forin or supplement a business listing.
In a second exemplary technique, business information extractor 720 may include a location extractor

-10-which.'YMiay lie in~lui~e'CI"a'5''part'tifa kafelirehgine. The location extractor may receive a search query and deterinine whether the search query includes a geographic reference. When the search query includes a geographic reference, the location extractor may separate the geographic reference from the search terins in the queiy and send them to a local search engine. When the search query does not include a geographic reference, the location extractor may forward the search terms to a web search engine that may include a traditional web search engine that returns a set of documents related to a search query. The local search engine may include a specialized search engine, such as a business listings search engine. In operation, the local search engine may receive the search terms and the geographic reference of a search query from the location extractor. The local search engine may identify a set of documents that match the search query (i.e., documents that contain the set of search terms of the search query) by comparing the search terms to documents in a docuinent coipus relating to the geographic area associated with the geographic reference. The local search engine may score the identified docuinents, sort them based on their scores, and output them as a list of search results.
The location extractor may determine unambiguous addresses (e.g., cities) in a search query by setting a variable i equal to one, and performing a search for the name of a city for each city(i) in a list of cities. The number of search results for this search may be counted as countcity. A search may also be perfonned for the naine of the city with the name of the corresponding province. The number of search results for this search may be counted as countcity/province.
It may then be determined whether countcity/province is at least X% (where X
is a number greater than zero) of countcity. When countcity/province is at least X% of countcity, then the city may be considered an "unambiguous" city. An "unainbiguous city" may refer to a city whose naine can be used alone in a search query and it will be understood that the user intended the city and not something else. When countcity/province is not at least X% of countcity, then it may be determined whether there are any more cities on the list. If there are more cities on the list, then the variable i may be incremented by one and the next city in the list of cities may be evaluated.
The documents of the search results may be analyzed to identify any postal codes that they contain.
The postal codes may be identified using a pattern matching technique and verified by comparing them to a list of postal codes. It may then be determined whether the postal codes correspond to postal codes associated with city(i). The number of documents that contain postal codes associated with city(i) inay be counted as countpostal. It may be determined whether countpostal is at least X% (e.g., 5%) of countcity. When countpostal is at least X% of countcity, then the city may be considered an unambiguous city.
In a third exemplaiy technique, business information extractor 720 may identify a geographically relevant document. A geographically relevant document, as used herein, may generally refer to any document that, in some manner, has been determined to have particular relevance to a geographical location. Business listings (e.g., yellow page listings) may be considered a geographically relevant document that is relevant to the geographic region defined by the address of the business. Other documents, such as web documents, may also have particular geographical relevance. For example, a business may have a home page, may be the subject of a document that coimnents on or reviews the business, or may be mentioned by a web page that in some other way relates to the business. The particular geographic location for which a document is associated may be determined in a number of ways, such as from the postal address or from other geographic signals.
The geographic region associated with the geographically relevant document may be mapped to a corresponding location identifier. Additional location identifiers may be determined for the document. In

-11-particiiiar;'location'identifiers cor'"respoiiding to surroutrding regions within a predetermined range may also be determined. Each geographically relevant document may be indexed as if the document included the location identifiers associated with the document's region as well as the identified surrounding regions.
Although Fig. 7 shows business information extractor 720 as part of indexer 435, in other implementations, business inforination extractor 720 may be separate from indexer 435. To ensure that the set of composite documents may be available at indexing, the information extracted by business information extractor 720 may be provided in business information repository 750. Business information repository 750 may include a variety of inforination, e.g., the documents firom which business information has been extracted by business information extractor 720. Business information repositoiy 750, together witli the extracted business information, may be provided within indexer 435. Althougli Fig. 7 shows business information repository 750 as part of indexer 435, in otlier implementations, business inforination repository 750 may be separate from indexer 435.
Distance flattener 730 may set a search radius or distance for a local search query. For example, in one unplementation, each local search query may be geocoded by geocoder 430 to a particular location. Each location may be a point location (e.g., buildings, fainous tourist places, schools, street centers, etc.) or a bound location (e.g., districts, cities, provinces, etc.). For point locations, distance flattener 730 may set the search radius to a predetennined distance (e.g., approximately five kilometers around the point). For bound locations, distance flattener 730 may set the search radius to approxunately the maximum distance fi=om a centroid of the location to the corners. Scores of search results in a zcode set associated with the location-(i.e., the set of zcodes malcing up the location) may be promoted. In this way, wlien a user searches near a district name, the top results may be within that district.
Clusterer 740 may cluster map provider data 400 and yellow page data 405 together. Much of map provider data 400 may include accurate position information so that it may be displayed accurately on a map, but may not include detailed address or telephone nuinber infonnation (e.g., it might include an address without a street number and/or inay be missing a telephone nutnber). On the other hand, yellow page data 405 may include detailed address and telephone number information, but may not include accurate position inforination. For example, map provider data 400 may include a source (e.g., map provider), a title (e.g., "Beijing University"), an address (e.g., "Beijnig City HaiDian District YiHeYuan Road"), and/or a POI ID
(for map display) (e.g., "A1234567"). Whereas, yellow page data 405 may include a source (e.g., yellow page data provider), a title (e.g., "Beijing University"), an address (e.g., "Beijing City HaiDian District YiHeYuan Road 5 Number"), and/or a telepllone number (e.g., "010-62752114"). If these entries are clustered together by clusterer 740, then front end server 440 may be able to provide the user with detailed address and telephone number information, as well as an accurate position on a map.
The position obtained from geocoding (e.g., with geocoder 430) the address from yellow page data 405 may be an approximation and may be far away from the accurate position provided by map provider data 400. In this case, the same business from two providers may be located in much different neighborhoods, and thus may not be clustered together by clusterer 740. The solution to this may include geocoding (e.g., with geocoder 430) the address froin map provider data 400 to a cluster position.
The cluster position may be used for neighborhood generation as well as for clustering by clusterer 740. The actual position provided by map provider data 400 may then be used for map display.
Snippet highlighter 760 may highlight snippets in documents (e.g., web documents). Web docuinent snippet highlighting may typically be accomplished by term offsets in the documents. Since a CJK document

-12-.,= ~ õ ._,~ ~~._~~ . . , . . , ._;,. .. .., .. .
m., 1 ave term~"'cdhrit~ "' i~feientiy'fioin other languages (e.g., instead of using space as delimiter, a long paragraph of text may need to be segmented to obtain the terms), in order to highlight specific terins, the entire document may be segmented to obtain the corresponding tenns, which may be inefficient. However, snippet highlighter 760 may store byte offsets instead of terin offsets to identify an address or telepllone number (or some other business information) in a web document during indexing. Snippet highlighter 760 may use the byte offset to perform higlilighting and no segmentation may be required.
Although Fig. 7 shows snippet highlighter 760 as part of hldexer 435, in otlier implementations, snippet highlighter 760 may be separate from indexer and/or included in another coinponent (e.g., within front end server 440).
Although Fig. 7 shows exemplary tasks performed by indexer 435, in other implementations, indexer 435 may perform additional or different tasks that inay be used to identify local search results. Furthermore, although Fig. 7 shows the coinponents of indexer 435 as interconnected, in other iinplementations, the coinponents of indexer 435 may be separate, non-interconnected coinponents.
Front End Server Front end server 440, as shown in Fig. 8, may perform a variety of tasks to aid in the identification of local searcli results. In one iinplementation, for exainple, front end server 440 may include a queiy rewriter 800, a local search generator 810, a map generator 820, a geographical information generator 830, etc.
Although Fig. 8 shows exemplary tasks performed by front end server 440, in other implementations, front end server 440 may perform additional or different tasks that may be used to aid in the identification of local search results. 20 In one iinplementation, queiy rewriter 800 may perforin a variety of tasks. For example, since the number of web document clusters may be much snlaller for Chinese data compared to English data, a match in a title or category may be used to return valid results. Also, in Chinese there may be several synonyms referring to the same terin. For example, the terin "restaurant" may have several common synonyms in Chinese. In addition, the different providers of yellow page data 400 may use different names to represent the same category. In order to provide the most recall for the search query entered by the user, query rewriter 800 may generate a list of synonyms for each of the categories. Query rewriter 800 may also rewrite each local search query to expand the query to a couple of search terms that may be joined by an "OR" operand.
Local search generator 810 may generate local search results 450. For example, local search generator 810 may generate results coiTesponding to relevant web pages and/or business listings within a specific geographic area, based on the address information obtahied and processed by local search system 225.
Local search results 450 may be displayed (e.g., to the user who input the local search query) on a display (e.g., output device 370).
Map generator 820 may generate a map relating to local search results 450. For example, in order to display the map for the results, map generator 820 may construct an iframe (i.e., a floating frame inserted witliin a web page) on the search result page, and may execute a post action to a URL provided by the map provider. The paraineters in the post may contain the following fields for each search result: a title; an address; a telephone number; POI ID (for displaying the point on the map); and accuracy. Locations that may be geocoded to a building level may be marked as accurate on the map by map generator 820. Locations that may be geocoded to a street level (or some higher level of abstraction) may be marlced as estimated on the map by map generator 820. Fig. 9 illustrates how these two levels of accuracy may be differentiated on a map 900 generated based on local search results 910. For example, accurate locations 920 inay be identified by one marker color (e.g., green) and estimated locations 930 may be identified by another marlcer color (e.g.,

-13-red). '~Vhi7e~two'levels o'f accutacy (accurate and estimate) are shown in Fig. 9, additional levels of accuracy may be used in other iinplementations consistent with principles of the invention.
During indexing by indexer 435, the fmgerprint of the address (e.g., address FP 540) may be stored together with its associated accuracy (e.g., FP accuracy 550). The mapping between the address fingerprint and the POI ID (e.g., address FP/POI ID mapping information 425) may be used by map generator 820 to lookup the POI ID for each search result. The POI ID may be used by map generator 820 to identify a position on the map (e.g., map 900) for the map provider so that the map provider may show the position on the map provided within the result page.
In order to display local ads for China, geographical information generator 830 may provide geographical information to ads server 840 in a variety of ways. For example, in one impleinentation, each province or self-administered city may have a two digit code, which may be the second part of the region code defined by ISO-3166-2. Geocoder 430 may index this code (e.g., "CN-dd") with each address and pass it to fi=ont end server 440 for every successfully geocoded address. Geographical infoi7nation generator 830 may send the code to ads server 840 as a geo-region-code.
In another iinpleinentation, advertisers may bid on keyword pairs of <keyword, location>, instead of using geo-targeting because, for web searching, geo-targeting may not work as well in Asian countries as it does in the United States: The inventory for ads may be more for such keyword pairs. As a result, geographical information generator 830 may concatenate keywords witli the locations entered by the search query, and may use these concatenations as the keywords_sent to ads server 840: For exainple, -when a user searches for "restaurant" near "Beijing," the keyword sent to ads server 840 by geographical information generator 830 may be "restaurant Beijing." Such an arrangement may be provided for both Japan and China.
In still another impleinentation, geographical information generator 830 may deterinine whether the search query includes a geographic reference. If the search query does not include a geographic reference, then regular advertisements may be presented by ads server 840. However, it may be determined whether an indicator of the user's location, such as the user" IP address, is available.
When an indicator of the user's location is available, then local advertisements may be presented based on the user's location.
If, on the other hand, the search query includes a geographic reference, geographical information generator 830 may determine whether the geographic reference corresponds to a city name alone (i.e., without any other geographic information, such as no province information). If the search query includes a geographic reference other than a city name alone, then local advertisements may be presented.
If the search quely includes a geographic reference corresponding to a city name 'alone, then geographical information generator 830 may determine whether the city corresponds to an unambiguous city.
If the city does not correspond to an unambiguous city, then regular advertiseinents may be presented. If the city corresponds to an unambiguous city, then geographical information generator 830 may determine whether the city name with one or more other search terms of the query appear on a blacklist. A blacklist may be maintained for unambiguous city names that, when coinbined with one or more words, mean something other than their respective cities. If the city name with one or more other search terms of the query appears on the blacklist, then regular advertisements may be presented. If the city name witli one or more other search terms of the query does not appear on the blacklist, then local advertisements may be presented based on the geographic reference of the query.
If local ("targeted") advertisements are to be presented, information concerning the user's location (e.g., the user's IP address) may be used by geographical infonnation generator 830 to determine whether that

-14-1~ Itioiiis ww u .ritl'~.ih._ u _.~....~ ,_..;. , ...., "p'redetei7niried"distance of the location corresponding to the geographic reference. If the 1oat user's location is within the predetermined distance, then local advertisements may be presented. If the user's location is outside the predetermined distance, however, then regular advertisements may be presented.
Front end server 440 (or components of front end server 440) may perform some tasks that may be specific to Cliina. For example, fi=ont end server 440 may hide driving directions, provide a display tulit (kilometer versus mile) that may be country dependent, perform filtering for sensitive keywords when the user is in China, provide specific fonnatting of Chinese addresses and telephone numbers for display, show the geocoded location on top of the map, and/or round the distance to 0.5 kilometers instead of 0.1 kilometers and remove the direction.
EXEMPLARY PROCESS
Figs. 10A-10D is a flowchart of an exemplary process for identifying local search results and providing a map associated with identified locations.
Exemplary Local Search Result And Map Generation Process As shown in Fig. 10A, a process 1000 for identifying local search results and providing a map associated with identified locations may begin with receipt of yellow page, map provider, and docuinent data (block 1005). For exainple, in one unplementation described above ni comiection with Fig. 4, map provider data 400, yellow page data 405, and web docurnent data 410 may be provided to indexer 435, and map provider data 400 inay fiuther be used to derive address/POI ID 'uiformation 420 and address FP/POI ID
mapping information 425.
Process 1000 may perform geocoding on the data (block 1010). For example, in one implementation described above ui connection with Fig. 6, address list generator 600 of geocoder 430 may receive map provider data 400 and yellow page data 405, and may generate an address list based on the provinces, cities, districts, street naines, addresses, POI names, or combinations thereof from map provider data 400 and/or yellow page data 405. Parser 610 of geocoder 430 may attempt to parse the city and/or district from the beginning of each address. Longest matching prefix locator 620 of geocoder 430 may be used to locate further portions of each address. Coinbination locator 630 of geocoder may locate particular combinations so that POI names inay be located first, then various levels of the addresses may be located, and, fmally, districts or cities may be located. Queiy geocoding unit 640 of geocoder 430 may coinpute the score of a search result based on the number of points in the search result location.
As fiu-ther shown in Fig. 10A, process 1000 may perform indexing on the data (block 1015). For example, in one implementation described above in connection with Fig. 7, map data indexer 700 of indexer 435 may index address data from map provider data 400, which inay include map position information.
Yellow page data preprocessor 710 of indexer 435 may receive yellow page data 405 from the different providers, and may preprocess yellow page data 405 to a cominon format.
Business information extractor 720 of indexer 435 may extract business information (e.g., addresses and telephone numbers) from web document data 410 using a variety of techniques. The techniques may be modified based on the different formatting of addresses and telephone numbers in China and Japan. The extracted business infortnation may be provided in business information repository 750. Distance flattener 730 of indexer 435 may set a search radius for a local search queiy. Clusterer 740 of indexer 435 may cluster map provider data 400 and yellow page data 405 together. Snippet highlighter 760 of indexer 435 may highlight snippets in documents (e.g., web documents).
Process 1000 may generate local search results and may provide a map URL
(block 1020). For example, in one implementation described above in connection with Fig. 8, local search generator 810 of front

-15-en server'440 iria""' enerate 1'o'ca1"'se'a'rc'h'results 450 (e.g., relevant web pages and/or business listings within a Yg specific geographic area, based on the address inforniation obtained and processed by local search system 225). Map generator 820 of front end server 440 nzay generate a map relatulg to local searcli results 450. For example, in order to display the map for the results, map generator 820 may construct an iframe (i.e., a floating frame inserted within a web page) on the search result page, and inay execute a post action to a URL
provided by the map provider.
Exemplary Geocoding Process Process block 1010 (Fig. l0A) of process 1000 may include the blocks shown in Fig. lOB. Thus, process block 1010 may generate an address list (block 1025). For exanzple, in one implementation described above in connection with Fig. 6, address list generator 600 of geocoder 430 may receive map provider data 400 and yellow page data 405, and may generate an address list (tokens) based on tlie provinces, cities, districts, street names, addresses, POI naines, or combinations thereof from map provider data 400 and/or yellow page data 405. Process block 1010 may parse each address in the address list (block 1030). For example in one implementation described above in connection with Fig. 6, for each address, parser 610 of geocoder 430 may atteinpt to parse the city and the district from the address.
As further shown in Fig. lOB, process block 1010 may locate the longest matching prefixes from each address in the address list (block 1035). For example in one implementation described above in connection with Fig. 6, longest matching prefix locator 620 of geocoder 430 may be used to locate fiu-ther port ions of the address (e.g., a town, a village, a road or street,.number, POI names, etc.). If the longest matching prefixes are not located in the address (block 1040 - NO), then process block 1010 may continue to locate further portions of the address (block 1035).
If the longest matching prefixes are located in the address (block 1040 -YES), then process block 1010 may locate combinations in each address (block 1045). For example in one hnplementation described above in connection with Fig. 6, combuiation locator 630 of geocoder 430 may locate particular coinbhiations so that POI names may be located first, then various levels of the addresses may be located, and, finally, districts or cities may be located. Such a locating arrangement may guarantee or verify that the most specific possible address may be obtained by combination locator 630.
Exemplaiy Indexing Process Process block 1015 (Fig. 10A) of process 1000 may include the blocks shown in Fig. l OC. Tlius, process block 1015 may preprocess the yellow page data (blocl: 1050). For example, in one iinplementation described above in connection with Fig. 7, yellow page data preprocessor 710 of indexer 435 may receive yellow page data 405 from the different providers, and may preprocess yellow page data 405 to a common (or predetermined) fonnat. This fonnatted data may be provided to geocoder 430 during indexing, and geocoder 430 may attempt to geocode the address. If the address may be geocoded to building or street level, the address may be indexed as a noimal entry. If the address may be geocoded to city or district level, address tnay be indexed as an entry with an approximate position.
Process block 1015 may extract business information from documents (block 1055) and inay store the business information (block 1060). For example, in one implementation described above in connection with Fig. 7, business information extractor 720 of indexer 435 may extract business information (e.g., addresses and telephone numbers) from web document data 410 using a variety of techniques. The techniques may be modified based on the different formatting of addresses and telephone numbers in China and Japan. In another implementation described above in connection with Fig. 7, the extracted business information may be

-16-õ= t u - IL 11,:1I U...~ ~L..~~ .t ......~ ;;~n ::==;r ;
pr i'08 in busYheS~ i"n' oIiriat'itin'repo'sitoy 750. Business information repositoiy 750 may include a variety of information, e.g., the documents fiom which business inforination has been extracted by business information extractor 720.
Process block 1015 may index address data received fi=om a map provider (block 1065). For example, in one implementation described above in connection with Fig. 7, map data indexer 700 of in.dexer 435 may uldex address data from map provider data 400, which may include inap position information.
Geocoder 430 may attempt to geocode the address again based on the indexed address data, and clusterer 740 may set the cluster position if the cluster position is different from the given position, but may not set the cluster position above a predetermuied distance tlu=eshold (e.g., within three kilometers).
As further shown in Fig. lOC, process block 1015 may cluster yellow page data and map provider data (block 1070). For exainple, in one implementation described above in connection with Fig. 7, clusterer 740 of indexer 435 may cluster map provider data 400 and yellow page data 405 together. If these entries are clustered together by clusterer 740, then front end server 440 may be able to provide the user with detailed address and telephone number information, as well as an accurate position on a map.
Process bloclc 1015 may highlight snippets provided in docurnents (block 1075). For example, in one iinplementation described above in connection with Fig. 7, snippet highlighter 760 of indexer 435 may highlight snippets in documents (e.g., web documents). Snippet highlighter 760 may store byte offsets instead of term offsets to identify an address or telephone nuinber (or some other business inforination) in a web document during indexing. Snippet highlighter 760 may use the byte offset to perfonn highlighting and no segmentation may be required.
As further shown in Fig. lOC, process block 1015 may set a search distance (block 1080). For example, ui one implementation described above in connection witli Fig. 7, distance flattener 730 of indexer 435 may set a search radius for a local searcli query geocoded by geocoder 430 to a particular location. Each location may be a point location (e.g., buildings, famous tourist places, schools, street centers, etc.) or a bound location (e.g., districts, cities, provinces, etc.). For point locations, distance flattener 730 may set the search radius to a predetertnined distance (e.g., approximately five l(ilometers around the point). For bound locations, distance flattener 730 may set the search radius to approxunately the maximuin distance from a centroid of the location to the corners.
Exemplaiy Front End Server Process Process block 1020 (Fig. l0A) of process 1000 may include the blocks shown in Fig. l OD. Thus, process block 1020 may rewrite a search query (block 1085). For example, in one implementation described above in connection with Fig. 8, there may be several synonyms referring to the same term in Chinese. In addition, the different providers of yellow page data 400 may use different names to represent the same category. In order to provide the most recall for the search queiy entered by the user, query rewriter 800 of front end server 440 may generate a list of synonyms for each of the categories. Query rewriter 800 may also rewrite each local search query that may expand the queiy to a couple of search terms that may be joined by an "OR" operand.
Process block 1020 may generate local search results based on the search query, and may generate a map showing location(s) of the search results (block 1090). For example, in one implementation described above in connection witli Fig. 8, local search generator 810 of front end server 440 may generate local search results (e.g., relevant web pages and/or business listings within a specific geographic area, based on the address information obtained and processed by local search system 225). In another implementation described

-17-,... _....
ab ~ ve ~iri cbtine~'tiidtl W' tFig. iinapgenerator 820 of fi ont end server 440 may generate a map relating to local search results 450. For example, in order to display the map for the results, map generator 820 may construct an iframe (i.e., a floating fi=ame inserted witliin a web page) on the search result page, and may execute a post action to a URL provided by the map provider. The POI ID may be used by map generator 820 to identify a position on the map (e.g., map 900) for the map provider so that the map provider may show the position on the map provided within the result page.
As further shown in Fig. l OD, process block 1020 may generate geographical inforination for an ads server (block 1095). For exainple, in one iinplementation described above in connection with Fig. 8, in order to display local ads for China, geographicat information generator 830 of front end server 440 inay provide geographical information to ads server 840. For ex.ample, geographical inforination generator 830 may send the region code to ads server 840 as a geo-region-code. In another example, geographical information generator 830 may concatenate keywords with the locations entered by the user ulput search query, and may use these concatenations as the keywords sent to ads server 840.
CONCLUSION
Implementations described herein may provide systems and methods for identifying local search results and generating a map associated with identified locations. The system may receive a local search query input by a user, and may identify a location associated with the local search queiy. The system may identify a set of local search results that may be related to the local search query and may be associated with the identified location. The local search results may include links to documents-that may be related to the local search query. The system may identify aii identifier for a group of local search results, and may provide the identifier to a map provider. The systeni may receive a map associated with the identified location from the map provider. The map may identify a position of at least one search result in the group of local search results.
The described implementations provide one or more of the following advantages.
For example, map data and yellow page data may be utilized fi=om several different providers to identify local search results and generate a map associated with identified locations. The map may be conveniently displayed with the local search results. Such an arrangement avoids generation of local search results and a pointer to a third-party map provider's server.
In anotlier exatnple, the map may provide detailed map data based on the yellow page data. This may make it possible to generate a map that includes detailed map data in countries where expoi-t restrictions may limit the availability of detailed map data to render the map or may limit the availability of the actual latitude and longitude of addresses within the area.
The foregoing description of einbodiments of the present invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed.
Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while series of acts have been described with regard to Figs. l0A-l OD, the order of the acts may be modified in other implementations consistent with principles of the invention. Further, non-dependent acts may be performed in parallel. In one implementation, server 220 may perform most, if not all, of the acts described with regard to the processing of Figs. l0A- l OD.
In another iinplementation, one, or more, or all, of the acts may be perfonned by another entity, such as another server 230 and/or 240 or client 210.
In another example, alternative approaches may be utilized for geocoding addresses that are not

-18-prcYvitled liy"the'in'd~'ftaider: "'Iri"CiM di'Cei'ilative approach, geocoder 430 may attempt to locate the closest point for an address to be geocoded. For example, suppose that the points "1 ABC Street" and "10 ABC
Street" are identified by the map provider. When trying to geocode the address "3 ABC Street," geocoder 430 may return the location of"1 ABC Street," which is the closest point to "3 ABC
Street," In another alternative approach, geocoder 430 may attempt to hiterpolate a point. For example, if "1 ABC Street" is at grid index (0, 0) and "10 ABC Street" is at grid index (10, 20), geocoder 430 may determine that the address of "3 ABC
Street" is at grid index (3, 6), based upon interpolation.
In still another exainple, alternative approaches may be utilized for obtaining the POI IDs to draw the map. In one alternative approach, the POI ID may be stored witll the location data from the map provider.
The POI IDs may be returned by front end seiver 440 during serving time. The POI IDs inay change in different versions of the map provider data, Storing the POI ID in the index makes the index dependent upon the data from the map provider. In another alternative approach, the addresses of the search results may be geocoded during servulg time and geocoder 430 may be requested to provide the closest matching points.
Geocoder 430 inay return the POI IDs of the points. The requests for the closest matching points inay be sent as batclies (e.g., batches of ten) of geocoding requests so the perforinance impact may be small.
In a further example, wliile the systems and methods were described in terms of a Chinese local search, in other iinplementation, some of the techniques described herein may equally apply to local searching in other countries.
It will be apparent to one of ordinary skill_in the art that aspects of the invention, as described above, may be implemented in many different forms of software, fn-inware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent witli prhiciples of the invention is not limiting of the invention.
Thus, the operation and behavior of the aspects were described without reference to the specific software code--it being understood that one of ordinary skill in the art would be able to design software and control hardware to iinplement the aspects based on the description herein.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article "a" is intended to include one or more items. Where only one item is intended, the tenn "one"
or similar language is used.
Further, the pluase "based on" is intended to mean "based, at least in part, on" unless explicitly stated otherwise.

-19-

Claims (46)

WHAT IS CLAIMED IS:
1. A method comprising:
receiving yellow page data, third-party map provider data, and document data in response to a local search query;
geocoding at least one of the yellow page data, the third-party map provider data, and the document data to assign a geographic identifier to and to match at least one address within the local search query;
indexing the geocoded data to identify business information and location information corresponding to the local search query; and providing local search results and a third-party map based on the identified business information and location information.
2. The method of claim 1, wherein the yellow page data comprises at least one of address information for points of interest (POIs), telephone number information for POIs, a business name, an email address, a facsimile number, a web site address, a CEO name, a business description, a SIC-style category, or a type of business.
3. The method of claim 1, wherein the third party map provider data comprises a point of interest (POI) and an address of the POI.
4. The method of claim 3, wherein the third party map provider data further comprises a grid for the POI.
5. The method of claim 1, wherein the third party map provider data comprises at least one of:
a normal point of interest (POI) that includes a business name, an address, a telephone number, and a grid index, a road POI that includes a street name and a grid index of a center of the street, or a postal code POI that includes a postal code and a grid index of an approximate center of the postal code.
6. The method of claim 1, wherein the geocoding comprises:
generating an address list based on the local search query;
parsing each address in the address list;
locating longest matching prefixes in each address to identify portions of each address; and locating combinations in each address to verify each address.
7. The method of claim 1, wherein the indexing comprises:
preprocessing the yellow page data to a predetermined format;
extracting the business information from the document data;
indexing address information from the third party map provider data; and clustering the yellow page data and the third party map provider data.
8. The method of claim 7, wherein the indexing further comprises:
storing the business information in a repository;
highlighting snippets in the document data; and setting a search distance for the local search query.
9. The method of claim 1, wherein the providing comprises:
generating a list of synonyms related to the local search query;
rewriting the local search query to expand the query;
generating the local search results based on the expanded query;
obtaining the third party map based on the local search results; and generating advertisements based on geographical information related to the local search results.
10. The method of claim 1, wherein the location information is determined from the third party map provider data and the yellow page data.
11. A method of geocoding based on a local search query, comprising:
receiving third party map provider data and yellow page data;
generating an address based on the local search query;
parsing the address;
locating longest matching prefixes in the address to identify at least one portion of the address; and locating a combination in the address to verify the address.
12. The method of claim 11, further comprising:
generating the address based on information included in the third party map provider data or the yellow page data.
13. The method of claim 11, further comprising:
parsing a city and a district from the address.
14. The method of claim 11, wherein the portion of the address comprises at least one of a town, a village, a road, a street, a number, or a name of a point of interest.
15. The method of claim 11, further comprising:
locating the combination in the address so that a name of a point of interest is located first, other portions of the address are located second, and a district or a city is located third.
16. The method of claim 11, further comprising:
indexing the address as an exact position if the address includes a building or a street portion.
17. The method of claim 11, further comprising:
indexing the address to an approximate position if the address includes a city portion or a district portion.
18. A method of indexing based on a local search query, comprising:
preprocessing yellow page data to a predetermined format;
extracting business information from document data;
storing the business information in a repository;
indexing address information from third party map provider data;
clustering the yellow page data and the third party map provider data;
highlighting snippets in the document data;
for a point location, setting a search distance for the local search query to a predetermined distance;
and for a bound location, setting the search distance to approximately a maximum distance from a centroid of the bound location to corners of the bound location.
19. The method of claim 18, further comprising:
preprocessing the yellow page data to a predetermined format.
20. The method of claim 18, wherein the business information comprises at least one of a business address or a business telephone number.
21. The method of claim 20, further comprising:
modifying the extraction of the business information based on format differences of the business address or the business telephone number.
22. The method of claim 18, further comprising:
storing documents associated with the business information in the repository.
23. The method of claim 18, further comprising:
geocoding an address based on the indexed address information; and determining a new cluster position based on the geocoded address if the new cluster position is different than a previous cluster position.
24. The method of claim 18, further comprising:
highlighting snippets in the document data based on byte offsets that are stored to identify the business information in the document data.
25. A method comprising:
generating a list of synonyms related to a local search query;
rewriting the local search query to expand the query;
generating local search results based on the expanded query;
obtaining a map from a third party map provider based on the local search results; and generating advertisements based on geographical information related to the local search results.
26. The method of claim 25, further comprising:
rewriting the local search query by coupling search terms with an "OR"
operand.
27. The method of claim 25, wherein the obtaining the map comprises:
constructing a map frame with the local search results;
executing a post action to a URL provided by the third party map provider; and identifying a position on the map to enable the third party map provider to show the position on the map.
28. The method of claim 25, further comprising:
generating the advertisements based on a region code related to the local search results.
29. The method of claim 25, further comprising:
concatenating a keyword with a location related to the local search query; and generating the advertisements based on the concatenated keyword.
30. A system comprising:
an indexer to receive third party map provider data, yellow page data, and document data, preprocess the yellow page data to determine business information, extract business information from the document data, identify location information in a local search query, and index address data of the third party map provider data;
a geocoder to receive information from the indexer, and assign geographic identifiers; and a front end server to receive information from the geocoder, rewrite the local search query, obtain a map from the third party map provider data, and generate local search results based on the local search query.
31. The system of claim 30, further comprising:
an index/document repository that stores at least one of address data provided by the third party map provider data, points of interest information, postal code centers, or cities not included in the third party map provider data.
32. The system of claim 30, wherein the indexer preprocesses the yellow page data to a predetermined format.
33. The system of claim 30, wherein the indexer sets a search distance for the local search query.
34. The system of claim 30, wherein the indexer clusters the third party map provider data and the yellow page data.
35. The system of claim 30, wherein the indexer highlights snippets in the document data.
36. The system of claim 30, wherein the geocoder receives the third party map provider data and the yellow page data, and generates an address list from the third party map provider data and the yellow page data.
37. The system of claim 30, wherein the geocoder locates portions of an address.
38. The system of claim 37, wherein the geocoder locates combinations within the address.
39. The system of claim 30, wherein the geocoder computes the scores of each local search result based on a number of points in a search result location.
40. The system of claim 30, wherein the front end server generates a list of synonyms related to the local search query.
41. The system of claim 30, wherein the front end server generates an estimated location and an accurate location on the map for at least one local search result.
42. The system of claim 30, wherein the front end server generates advertisements based on geographical information related to the local search results.
43. A system comprising:
means for receiving yellow page data, third-party map provider data, and document data in response to a local search query;
means for geocoding at least one of the yellow page data, the third-party map provider data, and the document data to assign a geographic identifier to and to match at least one address within the local search query;
means for indexing the geocoded data to identify business information and location information corresponding to the local search query; and means for providing local search results and a third-party map based on the identified business information and location information.
44. A system comprising:
a memory to store a plurality of instructions; and a processor to execute instructions in the memory to:
identify a location associated with a local search query, identify local search results relevant to the local search query and associated with the identified location, identify an identifier for each of a group of the local search results, and receive from a third party map provider a map associated with the identified location, where the map identifies a position of at least one local search result in the group of local search results.
45. A method comprising:
receiving a local search query;
identifying a location associated with the local search query;
identifying a set of search results relevant to the local search query and associated with the identified location;
identifying an identifier for each of a group of the search results;

providing the identifier for each of the group of the search results to a third party map provider; and receiving from the third party map provider a map associated with the identified location, where the map identifies a position of at least one search result in the group of search results.
46. A method comprising:
generating a list of tokens;
identifying a potential address within a web document;
parsing the potential address from a beginning to determine whether the potential address includes a token associated with a city;
further parsing the potential address to determine whether the potential address includes a token associated with a district;
identifying a longest-matching token in the potential address after the token associated with the city or the token associated with the district; and determining whether the potential address is an actual address based on the token associated with the city, the token associated with the district, and the identified longest-matching token.
CA002620770A 2005-08-30 2006-08-30 Local search Abandoned CA2620770A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US71214605P true 2005-08-30 2005-08-30
US60/712,146 2005-08-30
PCT/US2006/033537 WO2007027608A2 (en) 2005-08-30 2006-08-30 Local search

Publications (1)

Publication Number Publication Date
CA2620770A1 true CA2620770A1 (en) 2007-03-08

Family

ID=37809410

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002620770A Abandoned CA2620770A1 (en) 2005-08-30 2006-08-30 Local search

Country Status (7)

Country Link
EP (1) EP1934829A4 (en)
JP (1) JP2009506459A (en)
KR (1) KR100985450B1 (en)
CN (1) CN101313300B (en)
BR (1) BRPI0615323A2 (en)
CA (1) CA2620770A1 (en)
WO (1) WO2007027608A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060555B2 (en) 2005-08-17 2011-11-15 Canada Post Corporation Electronic content management systems and methods

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917490B2 (en) * 2007-07-09 2011-03-29 Google Inc. Interpreting local search queries
KR100997873B1 (en) * 2008-03-31 2010-12-02 팅크웨어(주) Advertisement method and system of map using virtual point of interest
US20110055290A1 (en) * 2008-05-16 2011-03-03 Qing-Hu Li Provisioning a geographical image for retrieval
US8682646B2 (en) 2008-06-04 2014-03-25 Microsoft Corporation Semantic relationship-based location description parsing
US8306973B2 (en) * 2009-04-06 2012-11-06 Google Inc. Method for generating location targeted, keyword-triggered, ads and generating user recallable layer-based ads
KR100925278B1 (en) * 2009-04-29 2009-11-05 (주)지오투정보기술 System for geocoding using digital map and method therefor
KR101289082B1 (en) * 2009-09-02 2013-07-22 한국전자통신연구원 System and method for providing area information service
US20110131500A1 (en) * 2009-11-30 2011-06-02 Google Inc. System and method of providing enhanced listings
US8260775B2 (en) 2010-01-12 2012-09-04 Microsoft Corporation Geotemporal search
CN102479229A (en) * 2010-11-29 2012-05-30 北京四维图新科技股份有限公司 Method and system for generating point of interest (POI) data
CN102004793B (en) * 2010-12-08 2013-09-04 厦门雅迅网络股份有限公司 POI (Point Of Interest) position inquiry index file based on grid space and information inquiry method
US9047103B2 (en) 2010-12-21 2015-06-02 Microsoft Technology Licensing, Llc Resource index identifying multiple resource instances and selecting most appropriate UI resource instance based on weighted resource request conditions
US8495570B2 (en) 2010-12-23 2013-07-23 Microsoft Corporation Resource deployment based on conditions
US9495371B2 (en) 2010-12-28 2016-11-15 Microsoft Technology Licensing, Llc Unified access to resources
CN102622349B (en) * 2011-01-26 2014-10-22 北京四维图新科技股份有限公司 Method and apparatus for processing positional information database
US20140236689A1 (en) * 2011-02-11 2014-08-21 Thinkware Systems Corporation Method and system for advertisement of map using virtual poi (point of interest)
CN102222084B (en) * 2011-05-13 2014-02-19 北京百度网讯科技有限公司 Method and device for displaying retrieval result on map
US8983953B2 (en) * 2011-10-18 2015-03-17 Nokia Corporation Methods and apparatuses for facilitating interaction with a geohash-indexed data set
KR101303869B1 (en) * 2011-10-20 2013-09-04 경북대학교 산학협력단 System and method for example-based place search
CN103150309B (en) * 2011-12-07 2016-03-30 清华大学 A spatial orientation perception Map POI search method and system
US8958817B1 (en) 2012-01-19 2015-02-17 Google Inc. Weighted-distance spatial indexing
JP5544401B2 (en) * 2012-08-15 2014-07-09 株式会社ゼンリンデータコム Document data evaluation method, the document data evaluation device, document data selection method, document data selected device, database generation method, a database generation apparatus, and computer program
CN103049481B (en) * 2012-11-29 2016-03-02 百度在线网络技术(北京)有限公司 Method of searching and searching equipment
KR101499842B1 (en) * 2013-12-06 2015-03-10 아주대학교산학협력단 Method and Apparatus for searching for data object
CN104899243B (en) * 2015-03-31 2016-09-07 北京安云世纪科技有限公司 Interest point detection method and apparatus for data accuracy poi
CN104699838B (en) * 2015-04-01 2018-08-17 姚林 Kinds of Web search push method, and a combination of multi site search
CN105005577A (en) * 2015-05-08 2015-10-28 裴克铭管理咨询(上海)有限公司 Address matching method
CN105120072A (en) * 2015-07-17 2015-12-02 广东欧珀移动通信有限公司 Method and device for screening yellow page telephone numbers
CN106855868A (en) * 2015-12-09 2017-06-16 北京奇虎科技有限公司 Map search result displaying method and device
CN106897302A (en) * 2015-12-18 2017-06-27 北京四维图新科技股份有限公司 Interest point updating and displaying method and device
CN105808715B (en) * 2016-03-07 2017-02-22 武汉大学 A method of constructing a map position of
CN106304109A (en) * 2016-07-28 2017-01-04 中国科学院软件研究所 Method of generating shortwave radio resource scheduling scheme based on local search

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938721A (en) * 1996-10-24 1999-08-17 Trimble Navigation Limited Position based personal digital assistant
US6701307B2 (en) * 1998-10-28 2004-03-02 Microsoft Corporation Method and apparatus of expanding web searching capabilities
US7117199B2 (en) * 2000-02-22 2006-10-03 Metacarta, Inc. Spatially coding and displaying information
JP2002063196A (en) * 2000-03-06 2002-02-28 Katsuyoshi Nagashima Device for automatically retrieving internet information, and method for the same
JP2002082982A (en) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> Device and method for providing information and recording medium with information providing program recorded thereon
JP2005078206A (en) * 2003-08-28 2005-03-24 Canon Inc On-line print sales system and on-line print sales method
US6934634B1 (en) * 2003-09-22 2005-08-23 Google Inc. Address geocoding
JP2005149073A (en) * 2003-11-14 2005-06-09 Matsushita Electric Ind Co Ltd Data retrieval device
CA2548948C (en) * 2003-11-25 2014-11-18 Google Inc. Assigning geographic location identifiers to web pages

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060555B2 (en) 2005-08-17 2011-11-15 Canada Post Corporation Electronic content management systems and methods
US8595292B2 (en) 2005-08-17 2013-11-26 Canada Post Corporation Electronic content management systems and methods

Also Published As

Publication number Publication date
KR20080040044A (en) 2008-05-07
CN101313300B (en) 2014-11-12
JP2009506459A (en) 2009-02-12
KR100985450B1 (en) 2010-10-07
CN101313300A (en) 2008-11-26
EP1934829A2 (en) 2008-06-25
BRPI0615323A2 (en) 2011-05-17
WO2007027608A2 (en) 2007-03-08
EP1934829A4 (en) 2012-04-18
WO2007027608A3 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
Gan et al. Analysis of geographic queries in a search engine log
US7849071B2 (en) Geographical location extraction
US8135725B2 (en) System and method for providing tag-based relevance recommendations of bookmarks in a bookmark and tag database
US7912837B2 (en) Geographic coding for location search queries
Ding et al. Computing geographical scopes of web resources
US7792883B2 (en) Viewport-relative scoring for location search queries
CN101641694B (en) Federated search implemented across multiple search engines
US7539693B2 (en) Spatially directed crawling of documents
CN101785002B (en) Interpreting local search queries
US7599988B2 (en) Desktop client interaction with a geographical text search system
KR100313462B1 (en) A method of displaying searched information in distance order in web search engine
US9262767B2 (en) Systems and methods for generating statistics from search engine query logs
US9443035B2 (en) Method and system for autocompletion for languages having ideographs and phonetic characters
Wang et al. Detecting dominant locations from search queries
EP2181405B1 (en) Automatic expanded language search
US20060074628A1 (en) Methods and systems for selecting a language for text segmentation
US20120136885A1 (en) Query rewriting with entity detection
US5941944A (en) Method for providing a substitute for a requested inaccessible object by identifying substantially similar objects using weights corresponding to object features
AU2002364593B2 (en) System, method and software for automatic hyperlinking of persons&#39; names in documents to professional directories
EP1555625A1 (en) Query recognizer
KR100803769B1 (en) Method for clustering and querying media items
KR101153030B1 (en) System and method for providing a geographic search function
US20030131000A1 (en) Group-based search engine system
KR100952651B1 (en) Location extraction
US7444343B2 (en) Hybrid location and keyword index

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead

Effective date: 20160222