pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / xml-query-parser / src / test / org / apache / lucene / xmlparser / albumFilteredQuery.xsl
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <xsl:template match="/Document">
4 <!-- This template uses an efficient, cached filter for the "genre" field".
5         Other query fields are fed directly through an analyzer and so do not need to adhere to  
6         traditional Lucene query syntax. Terms within a field are ORed while different fields are ANDed
7  -->    
8 <FilteredQuery>
9         <Query>
10                 <BooleanQuery>
11                         <xsl:if test="count(artist)>0">
12                             <Clause occurs="must">
13                               <TermsQuery fieldName="artist"><xsl:value-of select="artist"/></TermsQuery>
14                            </Clause>
15                    </xsl:if>
16                         <xsl:if test="count(album)>0">
17                             <Clause occurs="must">
18                               <TermsQuery fieldName="album"><xsl:value-of select="album"/></TermsQuery>
19                            </Clause>
20                    </xsl:if>
21                         <xsl:if test="count(releaseDate)>0">
22                             <Clause occurs="must">
23                               <TermsQuery fieldName="releaseDate"><xsl:value-of select="releaseDate"/></TermsQuery>
24                            </Clause>
25                    </xsl:if>
26         </BooleanQuery>
27         </Query>
28         <Filter>
29                 <CachedFilter>
30                         <!-- Example filter to be cached for fast, repeated use -->
31                         <TermsFilter fieldName="genre">                 
32                                 <xsl:value-of select="genre"/>
33                         </TermsFilter>
34                 </CachedFilter>         
35         </Filter>       
36 </FilteredQuery>
37 </xsl:template>
38 </xsl:stylesheet>