Documente Academic
Documente Profesional
Documente Cultură
Narula et a1.
(54)
COLLECTION OF PERFORMANCE
2005/0028171 A1
Zoos/0177717 A1
3/2009 Wu
2009/00g9296 A1
4/2009 stemeseder
2011/0087966 A1*
OTHER PUBLICATIONS
(Us)
(*)
Not1ce:
2003, 3 pages,
(22) F1led:
(52)
(58)
(51)
(65)
(57)
JUL 21 201 1
ABSTRACT
In; C]_
G06F 17/30
(200601)
us. Cl. ....................... .. 707/719; 707/634; 707/725
Field of Classi?cation Search
None
request. The query results are content items that satisfy the
'
(56)
* med by examlner
get?
]a arov
700% Kumar
2009/0077037 A1
Aug. 7, 2012
2/2005 Kougiouris
2}
(75)
US 8,239,374 B2
References Cited
Us PATENT DOCUMENTS
6 473 504 B2 10/2002 Rojas
635263524 B1
2/2003 Kelley
6,578,077 B1 *
6,941,294 B2
7,516,124 B2
9/2005 Flank
4/2009 Kasperski
7,836,041 B1 *
2004/0143596 A1
11/2010
7/2004 Sirkin
,316
->
,304
r305
,320
Receigsgsijeggiicstemodel
r308
.
Send query suggestions
request
,318
s en d rem rd geiiszno
b' t
d e H a t ency
,310
,322
t n
end recorrde211:
stem | 3 tency
,324
response
response
r312
,326
r314
[-300
US. Patent
Aug. 7, 2012
US 8,239,374 B2
Sheet 1 0f 4
f 100
/106A
,106N
Computing Device
Computing Device
r102
Client Computing
System
FIG. 1
US. Patent
Aug. 7, 2012
Sheet 2 of4
US 8,239,374 B2
4/
Data source component
K202
210
Database
f
Reques.ts for
Content items
content items
,204
Search component
6/214
Index
Search application K216
i
Web API
K212
request
response
,206
Front end component
FIG. 2
200
US. Patent
Aug. 7, 2012
Sheet 3 of4
US 8,239,374 B2
r302
,316
"
>
r304
request
{306
Send ue
Su
99
latency response
,308
estions re uest
/322
request
v
/310
Receive query suggestions
V
/324
Receive record interface latency
response
[320
v
/318
Send record object model latency
response
{312
/326
r314
/328
FIG. 3
4/
300
US. Patent
Aug. 7, 2012
Sheet 4 of4
US 8,239,374 B2
Computing Device
m
Memory
@
BIOS
Operating
Application
424
System
Software
Program Data
430
it
<
"II
If
If
Processing
sgiggdaery
Network
Video
System
Devise
Interface Card
Interface
406
If
It
>
II
II
f4
II
II
If
External
Dis Ia
Component
Desicg
Interface
412
Input Device
E
Printer
Q
External
Storage
Device
%
FIG. 4
US 8,239,374 B2
1
COLLECTION OF PERFORMANCE
BACKGROUND
SUMMARY
20
25
30
cess the execute request. The query results are content items
that satisfy the search query. The method also comprises, after
receiving the execute response, generating, by the ?rst com
45
50
60
65
US 8,239,374 B2
3
another scale.
The network 104 includes computing devices 106A-106N
20
35
40
45
ing devices.
FIG. 3 is a ?owchart illustrating an example operation of a
front end component to execute a search query and to provide
performance information to a search component.
FIG. 4 is a block diagram illustrating an example comput
50
of computing device.
Furthermore, the system 100 includes a network 104. The
network 104 is a collection of computing devices and links
that facilitate communication among the computing devices.
The client computing system 102 is able to communicate with
at least some of the computing devices in the network 104. In
US 8,239,374 B2
5
results are content items that are in the databases and that
20
30
MICROSOFT Corporation.
35
50
60
55
search requests.
FIG. 2 is a block diagram illustrating an example tiered
architecture 200 of components provided by one or more of
system that hosts services. The Web API 212 includes a set of
methods. In various embodiments, the Web API 212 includes
various methods. For example, in some embodiments, the
Web API 212 includes a get search service application infor
mation method, a record query error event method, a get
202, the search component 204, the front end component 206,
65
US 8,239,374 B2
7
20
invoked, the execute method of the Web API 212 causes the
After identifying the query results for the search query, the
search application 216 sorts the query results. In various
embodiments, the search application 216 sorts the query
results in various Ways. For example, in some embodiments,
the search application 216 sorts the query results based on
relevance to the search query. In other embodiments, the
search application 216 sorts the query results based on date of
30
search query.
35
40
45
50
55
latency request, the Web API 212 records the search perfor
script, the front end component 206 can send a Web services
request to the Web API 212 and receive a Web services
response from the Web API 212. A Web services request is a
message instructing a computing system to remotely invoke a
method of a Web-accessible API. A Web services response is
60
face data and sends the user interface data to the client com
puting system that sent the search request (e.g., the client
computing system 102). The user interface data represents a
65
US 8,239,374 B2
9
10
In various embodiments, the get search service application
</xs :cornplexType>
</xs :elernent>
page.
25
40
user name that the search component 204 uses for authenti
55
US 8,239,374 B2
11
12
01
<xs:element nalne="RecordQueryErrorEvent
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
<xs:sequence>
</xs:complexType>
</xs:element>
<xs:element nalne="GetSearchServiceApplicationInfoResponse
xmlns:xs=http://WWW.W3 .org200 l/XMLSchema>
<xs:complexType>
<xs :sequence>
<xs :element minOccurs=0
resents
nalne="GetSearchServiceApplicationInfoResult nillable=ttue
200 8/0 8 type=ql 7:SearchServiceApplicationInfo/>
</xs :sequence>
</xs :complexType>
the
record
query
error
event
request.
The
xmlns:ql7=http://WWW.microso?.com/sharepoint/search/KnoWnTypes/
20
</xs:element>
<xs:complexType nalne="QueryErrorDataBuffer
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType nalne="SearchServiceApplicationInfo"
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
30
<xs:sequence>
<xs:element minOccurs=0 naIne=Prope1tyBag nillable=ttue
xmlns:q27=http://schemas.microsoft.com/2003/lO/Serialization/Arrays
type=q27 :ArrayOfKeyValueOfstringstring"/>
<xs :element minOccurs=0 naIne=QueryLoggingEnabled
<xs:complexContent mixed=false>
</xs :sequence>
35
type=xs:boolean/>
<xs :element minOccurs=0 naIne=QuerySuggestionsEnabled
</xs :extension>
</xs:complexContent>
</xs:complexType>
type=xs:boolean/>
</xs :sequence>
</xs:complexType>
40
<xs:complexType naIne=DataBuffer
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:sequence>
<xs:element minOccurs=0 naIne=ApplicationId type=
ser:guid/>
The Web API 212 also includes a record query error event
50
type=xs:string/>
</xs:sequence>
</xs:complexType>
55
60
65
US 8,239,374 B2
14
13
The VerboseQueryTimings element belongs to the
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs :element minOccurs=0 maxOccurs=unbounded
nalne="VerboseQueryErrorDataBuffer nillable=true
type=tns:VerboseQueryErrorDataBuffer"/>
</xs :sequence>
</xs :complexType>
<xs :complexType>
<xs:sequence>
15
"RecordQueryErrorEventResult"
type=xs:boolean/>
</xs:sequence>
</xs:complexType>
</xs :element>
query at the front end component 204 during the given time
period.
Get Properties
The Web API 212 also includes a get properties method.
<xs :complexType nalne="VerboseQueryErrorDataBuffer
30
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs :complexContent mixed=false>
<xs :extension base=tns:DataBuffer>
<xs:sequence>
ser:guid/>
<xs:element minOccurs=0 naIne=Exception nillable=
35
mm
type=xs:string/>
<xs:element minOccurs=0 naIne=Operation nillable=
mm
type=xs:string/>
</xs:sequence>
40
</xs:extension>
</xs :complexContent>
</xs :complexType>
<xs:element naIne=GetProperties
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
<xs:sequence>
60
</xs :sequence>
</xs:complexType>
</xs:element>
xmlns:q6=http://WWW.microsoft.com/sharepoint/search/KnoWnTypes/
2008/08 type=q6:QueryProperties/>
65
US 8,239,374 B2
15
16
-continued
<xs:sequence>
type=xs:string/>
type=xs:string/>
properties request.
When the search component 204 invokes the get properties
method in response to receiving a get properties request, the
Web API 212 generates a get properties response. The get
mm
type=xs:string/>
</xs:sequence>
</xs:complexType>
application 216.
In various embodiments, the get properties response is
formatted in various Ways. For example, in some embodi
ments, the get properties response is formatted as a SOAP
response comprising XML elements. The XML elements
conform to the folloWing schema:
<xs:element nalne="GetPropertiesResponse
20
25
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
30
</xs :sequence>
35
40
ing schema:
45
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
tns:PropertyInformation/>
</xs:sequence>
</xs:complexType>
and System.Byte[ ].
Highlight String Value
The Web API 212 also includes a highlight string value
method. The search component 204 invokes the highlight
string value method When the search component 204 receives
</xs :complexType>
</xs:element>
<xs :sequence>
KnoWnTypes/2008/08 type=q7:ArrayOfPropertyInformation/>
50
<xs:element nalne="HighlightStringValue
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
55
<xs:sequence>
<xs:element minOccurs=0 nalne=properties nillable=true
type=xs:string/>
<xs :element minOccurs=0 naIne=fLastTennByPre?x
60
type=xs:boolean/>
</xs :sequence>
</xs:complexType>
</xs:element>
<xs:complexType naIne=PropertyInfonnation
xmlns:xs=http://WWW.W3 .org200 l/XMLSchema>
65
US 8,239,374 B2
17
18
<xs:complexType naIne=HighlightedString
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:sequence>
<xs:element minOccurs=0 naIne=HighlightCount type=xs:int/>
type=xs:string/>
</xs:sequence>
</xs:complexType>
20
25
string.
other properties.
tems to identify the query terms and the tokens in the speci?ed
30
<xs:complexType>
<xs:sequence>
<xs:element minOccurs=0 nalne=properties nillable=true
xmlns:q4=http://WWW.microsoft.com/sharepoint/search/KnoWnTypes/
2008/08 type=q4:QueryProperties/>
<xs:element naIne=HighlightStringValueResponse
xmlns:xs=http://WWW.W3 .org200 l/XMLSchema>
40
<xs:complexType>
</xs :sequence>
</xs:complexType>
</xs:element>
<xs :sequence>
<xs :element minOccurs=0 nalne="HighlightStringValueResult"
nillable=true
xmlns:ql3=http://WWW.microso?.com/sharepoint/search/KnoWnTypes/
200 8/0 8 type=ql 3 :HighlightedString/>
</xs :sequence>
</xs :complexType>
</xs:element>
50
55
search query.
schema:
<xs:complexType name=QueryProperties
xmlns:xs=http://WWW.W3 .org200 l/XMLSchema>
<xs:element minOccurs=0 naIne=AlertInfo nillable=true
type=tns:AlertInfo/>
<xs :element minOccurs=0 naIne=AuthenticationType
US 8,239,374 B2
19
20
-continued
Query type=q7:QueryAuthenticationType"/>
<xs:elernent minOccurs=0 naIne=Correlationld type=ser:guid/>
<xs:elernent minOccurs=0 naIne=EnableNicknaInes type=xs:boolean/>
<xs:elernent minOccurs=0 naIne=EnablePhonetic type=xs:boolean/>
type=xs:int/>
<xs :elernent minOccurs=0 naIne=Hint
xmlns:q9=http://schernas.microso?.com/2003/lO/SerialiZation/Arrays
type=q9:ArrayOfanyType/>
<xs :elernent minOccurs=0 nalne="IgnoreAllNoiseQuery
type=xs:boolean/>
<xs :elernent minOccurs=0 naIne=KeyWordInclusion
xmlns:qlO=http://schernasdatacontracLorQZOO4/O7/Microso?.Of?ce.Server.
SearchQuery type=ql 0:KeyWordInclusion/>
<xs:elernent minOccurs=0 naIne=Locale type=xs:int/>
<xs:elernent minOccurs=0 naIne=PagingCookie nillable=true
xrnlns:ql l =http://schemas.datacontract.org2004/O7/Microso?.Of?ce.Server.
SearchQuery type=ql l :PagingCookie/>
<xs:elernent minOccurs=0 naIne=PartitionId type=ser:guid/>
<xs:elernent minOccurs=0 nalne="PersonaliZationData nillable=true
type=tns:QueryPersonaliZationData"/>
<xs:elernent minOccurs=0 naIne=QueryText nillable=true
type=xs:string/>
<xs:elernent minOccurs=0 naIne=RankingModelld nillable=true
type=xs:string/>
<xs :elernent minOccurs=0 naIne=ResultTypes
xmlns:ql2=http://schernasdatacontracLorQZOO4/O7/Microso?.Of?ce.Server.
SearchQuery type=ql2:ResultType/>
<xs :elernent minOccurs=0 naIne=ResultsProvider
xrnlns:ql3=http://schernasdatacontracLorQZOO4/O7/Microso?.Of?ce.Server.
45
leStemming element,
a "HighlightedSentenceCount
50
55
60
ponent 202 that stores properties that are associated With each
content item, and attributes of those properties. A full-text
index catalog is a collection of full-text index components
and other ?les that are organized in a speci?c directory struc
ture and contain the data that is needed to perform search
65
US 8,239,374 B2
21
22
element speci?es the query string for the search query. The
query string contains one or more tokens (i.e., query terms).
The ResultTypes element speci?es a type of query results to
be returned for the search query. The ResultsProvider ele
<xs:complexType nalne="KeyWordQueryProperties"
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexContent mixed=false>
<xs:extension base=tns:QueryProperties>
<xs:sequence>
<xs:element minOccurs=O naIne=CollapseNum type=xs:int/>
<xs:element minOccurs=O naIne=CollapseOn nillable=true
<xs:element minOccurs=O naIne=ContextGrouplD nillable=true
xmlns:ql=http://schemas.datacontract.org2004/07/Microso?.Of?ce.ServerSearch.Query
type=ql :SpellcheckMode/>
<xs:element minOccurs=O nalne="EnableUrlSmashing
<xs:element minOccurs=O naIne=Filter nillable=true
<xs:element minOccurs=O naIne=HiddenConstraints nillable=true
<xs:element minOccurs=O naIne=MaxShalloWRe?nementHits
<xs:element minOccurs=O naIne=Re?nementFilters nillable=true
xmlns:q2=http://schemas.microsoft.com/2003/lO/SerialiZation/Arrays
type=q2:ArrayOfstring/>
<xs:element minOccurs=O naIne=Re?_nementTokens nillable=true
xmlns:q3=http://schemas.microsoft.com/2003/lO/SerialiZation/Arrays
type=q3 :ArrayOfanyType/>
<xs:element minOccurs=O naIne=Re?ners nillable=true
type=q4:ResubmitFlag/>
<xs:element
minOccurs=0
naIne=ResultVieW
xmlns:q5=http://schemas.microsoft.com/2003/lO/SerialiZation/Arrays
type=q5 :ArrayOfanyType/>
<xs:element minOccurs=O naIne=SimilarTo nillable=true
type=tns:SortCollection/>
<xs:element minOccurs=O naIne=SortSimilar type=xs:boolean/>
<xs:element minOccurs=O naIne=TimeZone nillable=true
xmlns:q6=http://schemas.datacontracLorQZOO4/O7/System
type=q6:TimeZoneInfo/>
<xs:element minOccurs=O naIne=UserContextData nillable=true
nillable=true
US 8,239,374 B2
24
23
-continued
</xs :sequence>
</xs :extension>
</xs :complexContent>
</xs:complexType>
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs :complexContent mixed=false>
<xs :extension base=tns :QueryProperties>
<xs:sequence/>
</xs:extension>
</xs :complexContent>
</xs :complexType>
20
25
type
API 212 generates an execute response. The execute response
is a Web services response that is responsive to the execute
30
35
45
50
55
60
data.
65
US 8,239,374 B2
25
26
for the search query. The result tables contain query results for
the search query.
In Various embodiments, the execute response is formatted
in Various Ways. For example, in some embodiments, the
the
"ArrayOfKeyValueOfResultTypeResultTableUTLVOZE5
type.
"ArrayOfKeyValueOfResultTypeResultTableUTLVOZE5
Elements
belonging
to
the
loWing schema:
belonging
xrnlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
to
the
"ArrayOfKeyValueOfResultTypeResultTableUTLVOZE5
<xs :sequence>
<xs :element minOccurs=0 naIne=ExecuteResult
nillable=true xmlns:q5=http://WWW.microso?.com/sharepoint/search/
KnoWnTypes/2008/0 8 type=q5 :ResultTableCollection/>
20
<xs:complexType
nalne="ArrayOfKeyValueOfResultTypeResultTableUTLVOZES
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
</xs :sequence>
</xs :complexType>
</xs:element>
<xs:annotation>
25
</xs :appinfo>
</xs:a.nnotation>
<xs:appinfo>
<IsDictionary
xmlns=http://schemas.microsoft.corn/2003/l0/SerialiZation/>true
</IsDictionary>
<xs:sequence>
<xs:element minOccurs=0 maxOccurs=unbounded
30
nalne="KeyValueOfResultTypeResultTableUTLVO2E5>
folloWing schema:
<xs :complexType>
<xs :sequence>
<xs :element naIne=Key
<xs:complexType nalne="ResultTableCollection
35
xmlns:ql=http://schemas.datacontractorg2004/07/
Microsoft.Of?ce.ServerSearchQuery type=ql :ResultType/>
<xs :element naIne=Value nillable=true
xrnlns:xs=http://WWW.W3.org/200l/XMLSchema>
xmlns:q2=http://WWW.microsoft.com/sharepoint/search/KnoWnTypes/
<xs:sequence>
2008/08 type=q2:ResultTable/>
</xs :sequence>
</xs :complexType>
type=tns:ArrayOfResultDe?nition/>
<xs:element minOccurs=0 naIne=ElapsedTime type=xs:int/>
40
nillable=true xrnlns:q20=http://schemas.rnicroso?.com/2003/l0/
</xs :element>
</xs:sequence>
</xs:complexType>
Serialization/Arrays type=q20:ArrayOfstring/>
<xs :element minOccurs=0 nalne="KeyWordInforrnation
In
nillable=true type=tns:KeyWordInformation/>
<xs:element minOccurs=0 naIne=QueryMachine nillable=true
type=xs:string/>
45
xmlns:q2l=http://schemas.microsoft.corn/2003/lO/Serialization/Arrays
type=q2l :ArrayOfstring/>
the
element
50
element
Within
the
KeyValueOfResultTypeResultTableUTLVOzE5 element.
The
Value
element
Within
the
KeyValueOfResultTypeResultTableUTLVOzE5 element is
nillable=true type=xs:string/>
<xs :element minOccurs=0 H3IH6=IHiR6S1lltT1bl6S
nillable=true xrnlns:q22=http://schemas.rnicroso?.com/2003/l0/
Serialization/Arrays
type=q22 :ArrayOfKeyValueOfResultTypeResultTableUTLVOZES/>
example,
nillable=true type=xs:string/>
<xs:element minOccurs=0 naIne=QueryTerrns nillable=true
this
KeyValueOfResultTypeResultTableUTLVOzE5
55
</xs:complexType>
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType naIne=ResultTable
<xs:sequence>
<xs:element minOccurs=0 naIne=IsTotalRoWsExact
type=xs:boolean/>
65
US 8,239,374 B2
27
28
-continued
<xs :complexType>
<xs :annotation>
<xs:appinfo>
<ActualType NaIne=DataTable
Nalnespace=http://schemas.datacontracLorQZOO4/O7/System.Data
xmlns=http://schemas.microsoft.com/2003/l0/SerialiZation//>
</xs:appinfo>
</xs:annotation>
<xs :sequence>
<xs:any minOccurs=0 maxOccurs=unbounded
<xs:element naIne=GetTopQueryStringsForUrl
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexType>
nalnespace=http://WWW.W3.0rg/ZOOI/XMLSchema
processContents=lax/>
<xs:sequence>
microsoft-commml-diffgram-vl processContents=lax/>
</xs:sequence>
type=xs:string/>
<xs:element minOccurs=0 naIne=topCount type=xs:int/>
</xs :complexType>
</xs :sequence>
</xs :element>
</xs:complexType>
</xs:complexType>
</xs:element>
20
25
30
get top query strings for URL response. The get top query
strings for URL response speci?es a list of most frequently
35
When the search component 204 invokes the get top query
strings for URL method in response to receiving a get top
query strings for URL request, the Web API 212 generates a
40
45
<xs:complexType>
<xs:sequence>
naIne=GetTopQueryStringsForUrlResult nillable=true
xmlns:ql5=http ://schemas.microsoft.com/2003/l O/SerialiZation/Arrays
50
The Web API 212 also includes a get top query strings for
URL method. The search component 204 invokes the get
top query strings for URL method When the search compo
nent 204 receives a get top query strings for URL request.
The get top query strings for URL request is a Web services
request to invoke the get top query string for URL method.
The get top query strings for URL request speci?es a URL.
The front end component 206 uses the get top query strings
for URL request to obtain a list of the top query strings for
Which the URL Was returned. For example, the URL may be
returned in responses to 2000 search queries. At least some of
the 2000 search queries are the same. A response to the get
type=ql5 :ArrayOfstring/>
</xs :sequence>
</xs:complexType>
<xs:element nalne="GetTopQueryStringsForUrlResponse
xmlns:xs=http://WWW.W3 .org/2OO l/XMLSchema>
</xs:element>
55
60
65
US 8,239,374 B2
29
30
The
UIQueryLatencyDataBuffer
type
extends
the
the search component 204 about the search query latency for
the search queries received by the front end component 206
Within the given time period. In various embodiments, the
given time period has various lengths. For example, in some
ArrayOfAggregatedUIQueryLatencyDataBuffer
type.
25
<xs:complexType nalne=AggregatedUIQueryLatencyDataBuffer"
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
<xs:complexContent mixed=false>
type=xs:int/>
<xs :element minOccurs=0 nalne="InclusiveWebpartTimeMs
type=xs:int/>
<xs :element minOccurs=0 naIne=NumQueries
type=xs:int/>
<xs:element nalne="RecordUIQueryDoneEvent
xmlns:xs=http://WWW.W3 .org20O l/XMLSchema>
<xs:complexType>
type=xs:int/>
35
</xs :sequence>
<xs :sequence>
<xs:element minOccurs=0 nalne=buffer nillable=true
</xs :extension>
</xs:complexContent>
</xs:complexType>
</xs :complexType>
40
</xs:element>
In
45
example,
the
"AggregatedUIQueryLatency
this
for the Web parts on a search results page to process the search
<xs:complexType nalne="UIQueryLatencyDataBuffer"
xmlns:xs=http://WWW.W3.org/200l/XMLSchema>
type=tns:ArrayOfAggregatedUIQueryLatencyDataBuffer"/>
</xs:complexType>
<xs:complexContent mixed=false>