lucene/contrib/xml-query-parser
Mark Harwood 37a060c15c Additional thread safety around filter creation - old code could create duplicate CachingWrapperFilter if thread1 gets cache miss and thread 2 has a cache miss before thread1 populates cache with new CachingWrapperFilter.
Synchronization cost around whole method is OK here because Filter object construction should be a lightweight call. 
Note: CachingWrapperFilter currently has a similar bug in bits() method but adding "synchronized" around that whole method would not be a solution there because of the cost of evaluating filter.bits and the unnecessary blocking effect this would have on threads using different readers to the thread with the lock.

 

git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@628921 13f79535-47bb-0310-9956-ffa450edef68
2008-02-18 23:39:12 +00:00
..
docs Provided DTDs for core and contrib XML query syntax. The "docs" directory contains detailed documentation generated by DTDdoc from the DTDs. The ant script used to generate these docs is also included but not hooked up to the main build process due to license issues with DTDdoc. 2007-10-09 21:45:27 +00:00
src Additional thread safety around filter creation - old code could create duplicate CachingWrapperFilter if thread1 gets cache miss and thread 2 has a cache miss before thread1 populates cache with new CachingWrapperFilter. 2008-02-18 23:39:12 +00:00
LuceneContribQuery.dtd Provided DTDs for core and contrib XML query syntax. The "docs" directory contains detailed documentation generated by DTDdoc from the DTDs. The ant script used to generate these docs is also included but not hooked up to the main build process due to license issues with DTDdoc. 2007-10-09 21:45:27 +00:00
LuceneCoreQuery.dtd Provided DTDs for core and contrib XML query syntax. The "docs" directory contains detailed documentation generated by DTDdoc from the DTDs. The ant script used to generate these docs is also included but not hooked up to the main build process due to license issues with DTDdoc. 2007-10-09 21:45:27 +00:00
README.htm Rename README files to uppercase letters 2008-01-10 22:38:38 +00:00
build.xml LUCENE-931: adding missing license headers to various files 2007-06-09 06:09:46 +00:00
dtddocbuild.xml Provided DTDs for core and contrib XML query syntax. The "docs" directory contains detailed documentation generated by DTDdoc from the DTDs. The ant script used to generate these docs is also included but not hooked up to the main build process due to license issues with DTDdoc. 2007-10-09 21:45:27 +00:00
pom.xml.template - LUCENE-908: Improvements and simplifications for how the MANIFEST file and the META-INF dir are created. 2007-08-22 23:16:48 +00:00

README.htm

<html>
	<body>
		<h1>XML based query syntax
		</h1>
		<p>
			This module contains:
			<ul>
				<li>a modular Lucene Query Parser where queries are expressed as XML</li>
				<li>JUnit test</li>
				<li>DTD schemas and <a href="docs/index.html">generated documentation</a> </li>
				<li>Example XML queries</li>
				<li>Test index (subset of Reuters 21578)</li>
			</ul>
		</p>
		<p>
			The original motivation for creating this package was outlined and discussed <a href="http://marc.theaimsgroup.com/?l=lucene-dev&m=113355526731460&w=2">here</a>.
		</p>
		<p>
			Parser support includes:
			<ul>
				<li>"Span" queries</li>
				<li>Simple caching for filters</li>
				<li>"Like this" queries</li>
				<li>Boolean, Term, and UserInput (parsed with existing query parser)</li>
				<li>BoostingQuery - a class that can downgrade scores for hits on
				certain terms rather than the hard-line approach taken by BooleanClause.Occurs.MUST_NOT</li>
				<li>FilteredQuery, RangeFilter, DuplicateFilter and "TermsFilter" for non-sequential terms</li>
				<li>"FuzzyLikeThis" a new query which is a cross between "LikeThis" and "fuzzy" but with
					better scoring of fuzzy terms than standard fuzzy queries</li>
				<li>A modular design with expandable support for new query/filter types</li>
			</ul>
		</p>
		<p>This code is dependent on the "queries" contrib module although the "CoreParser" can be compiled with just Lucene core if required</p>
	</body>
</html>