1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html> <head>
<meta http-equiv='CONTENT-TYPE' content='text/html; charset=UTF-8' />
<link rel='StyleSheet' href='DTDDocStyle.css' type='text/css' media='screen' />
<title>Core Lucene</title>
</head><body>
<p class='DTDSource'><b><code>LuceneCoreQuery.dtd</code></b>: <a href='LuceneCoreQuery.dtd.html'>Elements</a> - <a href='LuceneCoreQuery.dtd.entities.html'>Entities</a> - <a href='LuceneCoreQuery.dtd.org.html'>Source</a> | <a href='intro.html'>Intro</a> - <a href='elementsIndex.html'>Index</a><br /><a href='index.html' target='_top'>FRAMES</a> / <a href='LuceneCoreQuery.dtd.org.html' target='_top'>NO FRAMES</a></p><pre id='dtd_source'><span class="dtd_comment"><!--</span>
<span class="dtd_comment"> <h3>Background</h3></span>
<span class="dtd_comment"> This DTD describes the XML syntax used to perform advanced searches using the core Lucene search engine. The motivation behind the XML query syntax is:</span>
<span class="dtd_comment"> <ol></span>
<span class="dtd_comment"> <li>To open up Lucene functionality to clients other than Java</li></span>
<span class="dtd_comment"> <li>To offer a form of expressing queries that can easily be</span>
<span class="dtd_comment"> <ul></span>
<span class="dtd_comment"> <li>Persisted for logging/auditing purposes</li></span>
<span class="dtd_comment"> <li>Changed by editing text query templates (XSLT) without requiring a recompile/redeploy of applications</li></span>
<span class="dtd_comment"> <li>Serialized across networks (without requiring Java bytecode for Query logic deployed on clients)</li></span>
<span class="dtd_comment"> </ul></span>
<span class="dtd_comment"> </li></span>
<span class="dtd_comment"> <li>To provide a shorthand way of expressing query logic which echos the logical tree structure of query objects more closely than reading procedural Java query construction code</li></span>
<span class="dtd_comment"> <li>To bridge the growing gap between Lucene query/filtering functionality and the set of functionality accessible throught the standard Lucene QueryParser syntax</li></span>
<span class="dtd_comment"> <li>To provide a simply extensible syntax that does not require complex parser skills such as knowledge of JavaCC syntax</li></span>
<span class="dtd_comment"> </ol></span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> <h3>Syntax overview</h3></span>
<span class="dtd_comment"> Search syntax consists of two types of elements:</span>
<span class="dtd_comment"> <ul></span>
<span class="dtd_comment"> <li><i>Queries</i></li></span>
<span class="dtd_comment"> <li><i>Filters</i></li></span>
<span class="dtd_comment"> </ul></span>
<span class="dtd_comment"> <h4>Queries</h4></span>
<span class="dtd_comment"> The root of any XML search must be a <i>Query</i> type element used to select content.</span>
<span class="dtd_comment"> Queries typically score matches on documents using a number of different factors in order to provide relevant results first. </span>
<span class="dtd_comment"> One common example of a query tag is the <a href="#UserQuery">UserQuery</a> element which uses the standard </span>
<span class="dtd_comment"> Lucene QueryParser to parse Google-style search syntax provided by end users.</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> <h4>Filters</h4></span>
<span class="dtd_comment"> Unlike Queries, <i>Filters</i> are not used to select or score content - they are simply used to filter <i>Query</i> output (see <a href="#FilteredQuery">FilteredQuery</a> for an example use of query filtering).</span>
<span class="dtd_comment"> Because Filters simply offer a yes/no decision for each document in the index their output can be efficiently cached in memory as a <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/BitSet.html">Bitset</a> for</span>
<span class="dtd_comment"> subsequent reuse (see <a href="#CachedFilter">CachedFilter</a> tag).</span>
<span class="dtd_comment"> <h4>Nesting elements</h4></span>
<span class="dtd_comment"> Many of the the elements can nest other elements to produce queries/filters of an arbitrary depth and complexity. </span>
<span class="dtd_comment"> The <a href="#BooleanQuery">BooleanQuery</a> element is one such example which provides a means for combining other queries (including other BooleanQueries) using Boolean </span>
<span class="dtd_comment"> logic to determine mandatory or optional elements. </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> <h3>Advanced topics</h3> </span>
<span class="dtd_comment"> <h4>Advanced positional testing - span queries</h4></span>
<span class="dtd_comment"> The <i>SpanQuery</i> class of queries allow for complex positional tests which not only look for certain combinations of words but in particular </span>
<span class="dtd_comment"> positions in relation to each other and the documents containing them.</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> CoreParser.java is the Java class that encapsulates this parser behaviour.</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@title</span><span class="dtd_comment"> Core Lucene </span>
<span class="dtd_comment">--></span>
<span class="dtd_comment"><!-- </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> Define core types of XML elements --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreSpanQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"SpanOr|SpanNear|SpanOrTerms|SpanFirst|SpanNot|SpanTerm|BoostingTermQuery"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"BooleanQuery|UserQuery|FilteredQuery|TermQuery|TermsQuery|MatchAllDocsQuery|ConstantScoreQuery|BoostingTermQuery|NumericRangeQuery"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreFilters</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"RangeFilter|NumericRangeFilter|CachedFilter"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> Allow for extensions --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedSpanQueries1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">" "</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedQueries1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">" "</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedFilters1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">" "</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"%coreSpanQueries;%extendedSpanQueries1;"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">queries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"%coreQueries;|%spanQueries;%extendedQueries1;"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">filters</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"%coreFilters;%extendedFilters1;"</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment"> BooleanQuerys implement Boolean logic which controls how multiple Clauses should be interpreted.</span>
<span class="dtd_comment"> Some clauses may represent optional Query criteria while others represent mandatory criteria. </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Find articles about banks, preferably talking about mergers but nothing to do with "sumitomo"</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <BooleanQuery fieldName="contents"></span>
<span class="dtd_comment"> <Clause occurs="should"></span>
<span class="dtd_comment"> <TermQuery>merger</TermQuery></span>
<span class="dtd_comment"> </Clause></span>
<span class="dtd_comment"> <Clause occurs="mustnot"></span>
<span class="dtd_comment"> <TermQuery>sumitomo</TermQuery></span>
<span class="dtd_comment"> </Clause></span>
<span class="dtd_comment"> <Clause occurs="must"></span>
<span class="dtd_comment"> <TermQuery>bank</TermQuery></span>
<span class="dtd_comment"> </Clause></span>
<span class="dtd_comment"> </BooleanQuery></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment">--></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain">)+</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName can optionally be defined here as a default attribute used by all child elements --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The "Coordination factor" rewards documents that contain more of the optional clauses in this list. This flag can be used to turn off this factor. --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">disableCoord</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"false"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The minimum number of optional clauses that should be present in any one document before it is considered to be a match. --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">minimumNumberShouldMatch</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- NOTE: "Clause" tag has 2 modes of use - inside <BooleanQuery> in which case only "query" types can be</span>
<span class="dtd_comment"> child elements - while in a <BooleanFilter> clause only "filter" types can be contained.</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> TODO: Change BooleanFilterBuilder and BooleanQueryBuilder to auto-wrap choice of query or filters. This type of</span>
<span class="dtd_comment"> code already exists in CachedFilter so could be reused.</span>
<span class="dtd_comment">--></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;|%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the clause is optional (should), mandatory (must) or unacceptable (mustNot) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">occurs</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">should</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">must</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">mustnot</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"should"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Caches any nested query or filter in an LRU (Least recently used) Cache. Cached queries, like filters, are turned into</span>
<span class="dtd_comment"> Bitsets at a cost of 1 bit per document in the index. The memory cost of a cached query/filter is therefore numberOfDocsinIndex/8 bytes.</span>
<span class="dtd_comment"> Queries that are cached as filters obviously retain none of the scoring information associated with results - they retain just</span>
<span class="dtd_comment"> a Boolean yes/no record of which documents matched. </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Search for documents about banks from the last 10 years - caching the commonly-used "last 10 year" filter as a BitSet in </span>
<span class="dtd_comment"> RAM to eliminate the cost of building this filter from disk for every query</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <FilteredQuery></span>
<span class="dtd_comment"> <Query></span>
<span class="dtd_comment"> <UserQuery>bank</UserQuery></span>
<span class="dtd_comment"> </Query> </span>
<span class="dtd_comment"> <Filter></span>
<span class="dtd_comment"> <CachedFilter></span>
<span class="dtd_comment"> <RangeFilter fieldName="date" lowerTerm="19970101" upperTerm="20070101"/></span>
<span class="dtd_comment"> </CachedFilter></span>
<span class="dtd_comment"> </Filter> </span>
<span class="dtd_comment"> </FilteredQuery></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">CachedFilter</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;|%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment">Passes content directly through to the standard LuceneQuery parser see "Lucene Query Syntax"</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Search for documents about John Smith or John Doe using standard LuceneQuerySyntax</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <UserQuery>"John Smith" OR "John Doe"</UserQuery></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment">--></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">UserQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">UserQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName can optionally be defined here to change the default field used in the QueryParser --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">UserQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- A query which is used to match all documents. This has a couple of uses: </span>
<span class="dtd_comment"> <ol></span>
<span class="dtd_comment"> <li> as a Clause in a BooleanQuery who's only other clause</span>
<span class="dtd_comment"> is a "mustNot" match (Lucene requires at least one positive clause) and..</li></span>
<span class="dtd_comment"> <li> in a FilteredQuery where a Filter tag is effectively being </span>
<span class="dtd_comment"> used to select content rather than it's usual role of filtering the results of a query.</li></span>
<span class="dtd_comment"> </ol></span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Effectively use a Filter as a query </em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <FilteredQuery></span>
<span class="dtd_comment"> <Query></span>
<span class="dtd_comment"> <MatchAllDocsQuery/></span>
<span class="dtd_comment"> </Query></span>
<span class="dtd_comment"> <Filter></span>
<span class="dtd_comment"> <RangeFilter fieldName="date" lowerTerm="19870409" upperTerm="19870412"/></span>
<span class="dtd_comment"> </Filter> </span>
<span class="dtd_comment"> </FilteredQuery> </span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment">--></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">MatchAllDocsQuery</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- a single term query - no analysis is done of the child text</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Match on a primary key</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <TermQuery fieldName="primaryKey">13424</TermQuery></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment">--></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment"> A boosted term query - no analysis is done of the child text. Also a span member.</span>
<span class="dtd_comment"> (Text below is copied from the javadocs of BoostingTermQuery)</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> The BoostingTermQuery is very similar to the {@link org.apache.lucene.search.spans.SpanTermQuery} except</span>
<span class="dtd_comment"> that it factors in the value of the payload located at each of the positions where the</span>
<span class="dtd_comment"> {@link org.apache.lucene.index.Term} occurs.</span>
<span class="dtd_comment"> In order to take advantage of this, you must override {@link org.apache.lucene.search.Similarity#scorePayload(String, byte[],int,int)}</span>
<span class="dtd_comment"> which returns 1 by default.</span>
<span class="dtd_comment"> Payload scores are averaged across term occurrences in the document.</span>
<span class="dtd_comment"> @see org.apache.lucene.search.Similarity#scorePayload(String, byte[], int, int)</span>
<span class="dtd_comment">--></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BoostingTermQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- </span>
<span class="dtd_comment"> The equivalent of a BooleanQuery with multiple optional TermQuery clauses.</span>
<span class="dtd_comment"> Child text is analyzed using a field-specific choice of Analyzer to produce a set of terms that are ORed together in Boolean logic.</span>
<span class="dtd_comment"> Unlike UserQuery element, this does not parse any special characters to control fuzzy/phrase/boolean logic and as such is incapable</span>
<span class="dtd_comment"> of producing a Query parse error given any user input</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Match on text from a database description (which may contain characters that </span>
<span class="dtd_comment"> are illegal characters in the standard Lucene Query syntax used in the UserQuery tag</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <TermsQuery fieldName="description">Smith & Sons (Ltd) : incorporated 1982</TermsQuery></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment">--></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The "Coordination factor" rewards documents that contain more of the terms in this list. This flag can be used to turn off this factor. --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">disableCoord</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"false"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The minimum number of terms that should be present in any one document before it is considered to be a match. --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">minimumNumberShouldMatch</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- </span>
<span class="dtd_comment"> Runs a Query and filters results to only those query matches that also match the Filter element. </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Find all documents about Lucene that have a status of "published"</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <FilteredQuery></span>
<span class="dtd_comment"> <Query></span>
<span class="dtd_comment"> <UserQuery>Lucene</UserQuery></span>
<span class="dtd_comment"> </Query></span>
<span class="dtd_comment"> <Filter></span>
<span class="dtd_comment"> <TermsFilter fieldName="status">published</TermsFilter></span>
<span class="dtd_comment"> </Filter> </span>
<span class="dtd_comment"> </FilteredQuery> </span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment">--></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">FilteredQuery</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Query</span><span class="dtd_plain">,</span><span class="dtd_attribute_name">Filter</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">FilteredQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Used to identify a nested Query element inside another container element. NOT a top-level query tag --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Query</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The choice of Filter that MUST also be matched --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Filter</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment"> Filter used to limit query results to documents matching a range of field values</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Search for documents about banks from the last 10 years</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <FilteredQuery></span>
<span class="dtd_comment"> <Query></span>
<span class="dtd_comment"> <UserQuery>bank</UserQuery></span>
<span class="dtd_comment"> </Query> </span>
<span class="dtd_comment"> <Filter></span>
<span class="dtd_comment"> <RangeFilter fieldName="date" lowerTerm="19970101" upperTerm="20070101"/></span>
<span class="dtd_comment"> </Filter> </span>
<span class="dtd_comment"> </FilteredQuery></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The lower-most term value for this field (must be <= upperTerm) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">lowerTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The upper-most term value for this field (must be >= lowerTerm) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">upperTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the lowerTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeLower</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the upperTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeUpper</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment"> A Query that matches numeric values within a specified range.</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Search for documents about people who are aged 20-25</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <NumericRangeQuery fieldName="age" lowerTerm="20" upperTerm="25" /></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The lower-most term value for this field (must be <= upperTerm and a valid native java numeric type) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">lowerTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The upper-most term value for this field (must be >= lowerTerm and a valid native java numeric type) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">upperTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The numeric type of this field --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">type</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">int</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">long</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">float</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">double</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"int"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the lowerTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeLower</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the upperTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeUpper</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Lower step values mean more precisions and so more terms in index (and index gets larger). This value must be an integer --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">precisionStep</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"4"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!--</span>
<span class="dtd_comment"> A Filter that only accepts numeric values within a specified range</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Search for documents about people who are aged 20-25</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <FilteredQuery></span>
<span class="dtd_comment"> <Query></span>
<span class="dtd_comment"> <UserQuery>person</UserQuery></span>
<span class="dtd_comment"> </Query> </span>
<span class="dtd_comment"> <Filter></span>
<span class="dtd_comment"> <NumericRangeFilter fieldName="age" lowerTerm="20" upperTerm="25"/></span>
<span class="dtd_comment"> </Filter> </span>
<span class="dtd_comment"> </FilteredQuery></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The lower-most term value for this field (must be <= upperTerm and a valid native java numeric type) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">lowerTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The upper-most term value for this field (must be >= lowerTerm and a valid native java numeric type) --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">upperTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The numeric type of this field --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">type</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">int</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">long</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">float</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">double</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"int"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the lowerTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeLower</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if the upperTerm in the range is part of the allowed set of values --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeUpper</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Lower step values mean more precisions and so more terms in index (and index gets larger). This value must be an integer --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">NumericRangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">precisionStep</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"4"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- A single term used in a SpanQuery. These clauses are the building blocks for more complex "span" queries which test word proximity</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em>Find documents using terms close to each other about mining and accidents</em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <SpanNear slop="8" inOrder="false" fieldName="text"> </span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>killed</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>died</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>dead</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>miner</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>mining</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>miners</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> </SpanNear></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanTerm</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanTerm</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- A field-specific analyzer is used here to parse the child text provided in this tag. The SpanTerms produced are ORed in terms of Boolean logic </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em>Use SpanOrTerms as a more convenient/succinct way of expressing multiple choices of SpanTerms. This example looks for reports </span>
<span class="dtd_comment"> using words describing a fatality near to references to miners</em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <SpanNear slop="8" inOrder="false" fieldName="text"> </span>
<span class="dtd_comment"> <SpanOrTerms>killed died death dead deaths</SpanOrTerms></span>
<span class="dtd_comment"> <SpanOrTerms>miner mining miners</SpanOrTerms></span>
<span class="dtd_comment"> </SpanNear></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOrTerms</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a "fieldName" attribute --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOrTerms</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Takes any number of child queries from the Span family </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em>Find documents using terms close to each other about mining and accidents</em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <SpanNear slop="8" inOrder="false" fieldName="text"> </span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>killed</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>died</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>dead</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>miner</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>mining</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>miners</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> </SpanNear></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOr</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Takes any number of child queries from the Span family and tests for proximity</span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> TODO SpanNear missing "boost attr (could add to SpanBuilderBase)</span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- defines the maximum distance between Span elements where distance is expressed as word number, not byte offset </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em>Find documents using terms within 8 words of each other talking about mining and accidents</em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <SpanNear slop="8" inOrder="false" fieldName="text"> </span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>killed</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>died</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>dead</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> <SpanOr></span>
<span class="dtd_comment"> <SpanTerm>miner</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>mining</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>miners</SpanTerm></span>
<span class="dtd_comment"> </SpanOr></span>
<span class="dtd_comment"> </SpanNear></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">slop</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls if matching terms have to appear in the order listed or can be reversed --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">inOrder</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">"true"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Looks for a SpanQuery match occuring near the beginning of a document</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
<span class="dtd_comment"> <em>Find letters where the first 50 words talk about a resignation:</em></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> <SpanFirst end="50"></span>
<span class="dtd_comment"> <SpanOrTerms fieldName="text">resigning resign leave</SpanOrTerms></span>
<span class="dtd_comment"> </SpanFirst></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Controls the end of the region considered in a document's field (expressed in word number, not byte offset) --></span><span class="dtd_plain"> </span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">end</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Finds documents matching a SpanQuery but not if matching another SpanQuery </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em>Find documents talking about social services but not containing the word "public"</em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <SpanNot fieldName="text"></span>
<span class="dtd_comment"> <Include></span>
<span class="dtd_comment"> <SpanNear slop="2" inOrder="true"> </span>
<span class="dtd_comment"> <SpanTerm>social</SpanTerm></span>
<span class="dtd_comment"> <SpanTerm>services</SpanTerm></span>
<span class="dtd_comment"> </SpanNear> </span>
<span class="dtd_comment"> </Include></span>
<span class="dtd_comment"> <Exclude></span>
<span class="dtd_comment"> <SpanTerm>public</SpanTerm></span>
<span class="dtd_comment"> </Exclude></span>
<span class="dtd_comment"> </SpanNot></span>
<span class="dtd_comment"> % </span>
<span class="dtd_comment"> </span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNot</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Include</span><span class="dtd_plain">,</span><span class="dtd_attribute_name">Exclude</span><span class="dtd_plain">) </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The SpanQuery to find --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Include</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- The SpanQuery to be avoided --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Exclude</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- a utility tag to wrap any filter as a query </span>
<span class="dtd_comment"> </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> <em> Find all documents from the last 10 years </em></span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> <ConstantScoreQuery></span>
<span class="dtd_comment"> <RangeFilter fieldName="date" lowerTerm="19970101" upperTerm="20070101"/></span>
<span class="dtd_comment"> </ConstantScoreQuery> </span>
<span class="dtd_comment"> %</span>
<span class="dtd_comment"> --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">ConstantScoreQuery</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">></span>
<span class="dtd_comment"><!-- Optional boost for matches on this query. Values > 1 --></span>
<span class="dtd_tag_symbols"><!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">ConstantScoreQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">"1.0"</span><span class="dtd_tag_symbols">></span>
</pre>
</body></html>
|