List of usage examples for org.apache.lucene.search BooleanQuery getMaxClauseCount
public static int getMaxClauseCount()
From source file:org.elasticsearch.index.query.xcontent.BoolQueryParser.java
License:Apache License
@Inject public BoolQueryParser(Index index, @IndexSettings Settings settings) { super(index, settings); BooleanQuery.setMaxClauseCount(/*from w w w . ja v a 2 s .c om*/ settings.getAsInt("index.query.bool.max_clause_count", BooleanQuery.getMaxClauseCount())); }
From source file:org.elasticsearch.xpack.graph.test.GraphTests.java
License:Open Source License
public void testLargeNumberTermsStartCrawl() { GraphExploreRequestBuilder grb = new GraphExploreRequestBuilder(client(), GraphExploreAction.INSTANCE) .setIndices("test"); Hop hop1 = grb.createNextHop(null);// www . j av a 2 s. c o m VertexRequest peopleNames = hop1.addVertexRequest("people").minDocCount(1); peopleNames.addInclude("john", 1); for (int i = 0; i < BooleanQuery.getMaxClauseCount() + 1; i++) { peopleNames.addInclude("unknown" + i, 1); } grb.createNextHop(null).addVertexRequest("people").size(100).minDocCount(1); // friends of members of beatles GraphExploreResponse response = grb.get(); checkVertexDepth(response, 0, "john"); checkVertexDepth(response, 1, "yoko"); }
From source file:org.eu.bitzone.Leia.java
License:Apache License
private void _explainStructure(final Object parent, final Query q) { String clazz = q.getClass().getName(); if (clazz.startsWith("org.apache.lucene.")) { clazz = "lucene." + q.getClass().getSimpleName(); } else if (clazz.startsWith("org.apache.solr.")) { clazz = "solr." + q.getClass().getSimpleName(); }//from www . jav a 2 s .c o m final float boost = q.getBoost(); final Object n = create("node"); add(parent, n); String msg = clazz; if (boost != 1.0f) { msg += ": boost=" + df.format(boost); } setFont(n, getFont().deriveFont(Font.BOLD)); setString(n, "text", msg); if (clazz.equals("lucene.TermQuery")) { final Object n1 = create("node"); final Term t = ((TermQuery) q).getTerm(); setString(n1, "text", "Term: field='" + t.field() + "' text='" + t.text() + "'"); add(n, n1); } else if (clazz.equals("lucene.BooleanQuery")) { final BooleanQuery bq = (BooleanQuery) q; final BooleanClause[] clauses = bq.getClauses(); final int max = BooleanQuery.getMaxClauseCount(); Object n1 = create("node"); String descr = "clauses=" + clauses.length + ", maxClauses=" + max; if (bq.isCoordDisabled()) { descr += ", coord=false"; } if (bq.getMinimumNumberShouldMatch() > 0) { descr += ", minShouldMatch=" + bq.getMinimumNumberShouldMatch(); } setString(n1, "text", descr); add(n, n1); for (int i = 0; i < clauses.length; i++) { n1 = create("node"); String occur; final Occur occ = clauses[i].getOccur(); if (occ.equals(Occur.MUST)) { occur = "MUST"; } else if (occ.equals(Occur.MUST_NOT)) { occur = "MUST_NOT"; } else if (occ.equals(Occur.SHOULD)) { occur = "SHOULD"; } else { occur = occ.toString(); } setString(n1, "text", "Clause " + i + ": " + occur); add(n, n1); _explainStructure(n1, clauses[i].getQuery()); } } else if (clazz.equals("lucene.PrefixQuery")) { Object n1 = create("node"); final PrefixQuery pq = (PrefixQuery) q; final Term t = pq.getPrefix(); setString(n1, "text", "Prefix: field='" + t.field() + "' text='" + t.text() + "'"); add(n, n1); try { addTermsEnum(n, PrefixQuery.class, pq.getField(), pq); } catch (final Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (clazz.equals("lucene.PhraseQuery")) { final PhraseQuery pq = (PhraseQuery) q; setString(n, "text", getString(n, "text") + ", slop=" + pq.getSlop()); final int[] pos = pq.getPositions(); final Term[] terms = pq.getTerms(); Object n1 = create("node"); final StringBuffer sb = new StringBuffer("pos: ["); for (int i = 0; i < pos.length; i++) { if (i > 0) { sb.append(','); } sb.append("" + pos[i]); } sb.append("]"); setString(n1, "text", sb.toString()); add(n, n1); for (int i = 0; i < terms.length; i++) { n1 = create("node"); setString(n1, "text", "Term " + i + ": field='" + terms[i].field() + "' text='" + terms[i].text() + "'"); add(n, n1); } } else if (clazz.equals("lucene.MultiPhraseQuery")) { final MultiPhraseQuery pq = (MultiPhraseQuery) q; setString(n, "text", getString(n, "text") + ", slop=" + pq.getSlop()); final int[] pos = pq.getPositions(); Object n1 = create("node"); final StringBuffer sb = new StringBuffer("pos: ["); for (int i = 0; i < pos.length; i++) { if (i > 0) { sb.append(','); } sb.append("" + pos[i]); } sb.append("]"); setString(n1, "text", sb.toString()); add(n, n1); n1 = create("node"); System.err.println("MultiPhraseQuery is missing the public getTermArrays() :-("); setString(n1, "text", "toString: " + pq.toString()); add(n, n1); } else if (clazz.equals("lucene.FuzzyQuery")) { final FuzzyQuery fq = (FuzzyQuery) q; Object n1 = create("node"); setString(n1, "text", "field=" + fq.getField() + ", prefixLen=" + fq.getPrefixLength() + ", maxEdits=" + df.format(fq.getMaxEdits())); add(n, n1); try { addTermsEnum(n, FuzzyQuery.class, fq.getField(), fq); } catch (final Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (clazz.equals("lucene.WildcardQuery")) { final WildcardQuery wq = (WildcardQuery) q; final Term t = wq.getTerm(); setString(n, "text", getString(n, "text") + ", term=" + t); final Automaton a = WildcardQuery.toAutomaton(t); addAutomaton(n, a); } else if (clazz.equals("lucene.TermRangeQuery")) { final TermRangeQuery rq = (TermRangeQuery) q; setString(n, "text", getString(n, "text") + ", inclLower=" + rq.includesLower() + ", inclUpper=" + rq.includesUpper()); Object n1 = create("node"); setString(n1, "text", "lowerTerm=" + rq.getField() + ":" + rq.getLowerTerm() + "'"); add(n, n1); n1 = create("node"); setString(n1, "text", "upperTerm=" + rq.getField() + ":" + rq.getUpperTerm() + "'"); add(n, n1); try { addTermsEnum(n, TermRangeQuery.class, rq.getField(), rq); } catch (final Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof AutomatonQuery) { final AutomatonQuery aq = (AutomatonQuery) q; setString(n, "text", getString(n, "text") + ", " + aq.toString()); // get automaton try { final java.lang.reflect.Field aField = AutomatonQuery.class.getDeclaredField("automaton"); aField.setAccessible(true); final Automaton a = (Automaton) aField.get(aq); addAutomaton(n, a); } catch (final Exception e) { e.printStackTrace(); final Object n1 = create("node"); setString(n1, "text", "Automaton: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof MultiTermQuery) { final MultiTermQuery mq = (MultiTermQuery) q; final Set<Term> terms = new HashSet<Term>(); mq.extractTerms(terms); setString(n, "text", getString(n, "text") + ", terms: " + terms); try { addTermsEnum(n, TermRangeQuery.class, mq.getField(), mq); } catch (final Exception e) { e.printStackTrace(); final Object n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof ConstantScoreQuery) { final ConstantScoreQuery cq = (ConstantScoreQuery) q; setString(n, "text", getString(n, "text") + ", " + cq.toString()); final Object n1 = create("node"); add(n, n1); if (cq.getFilter() != null) { setString(n1, "text", "Filter: " + cq.getFilter().toString()); } else if (cq.getQuery() != null) { _explainStructure(n, cq.getQuery()); } } else if (q instanceof FilteredQuery) { final FilteredQuery fq = (FilteredQuery) q; final Object n1 = create("node"); setString(n1, "text", "Filter: " + fq.getFilter().toString()); add(n, n1); _explainStructure(n, fq.getQuery()); } else if (q instanceof SpanQuery) { final SpanQuery sq = (SpanQuery) q; final Class sqlass = sq.getClass(); setString(n, "text", getString(n, "text") + ", field=" + sq.getField()); if (sqlass == SpanOrQuery.class) { final SpanOrQuery soq = (SpanOrQuery) sq; setString(n, "text", getString(n, "text") + ", " + soq.getClauses().length + " clauses"); for (final SpanQuery sq1 : soq.getClauses()) { _explainStructure(n, sq1); } } else if (sqlass == SpanFirstQuery.class) { final SpanFirstQuery sfq = (SpanFirstQuery) sq; setString(n, "text", getString(n, "text") + ", end=" + sfq.getEnd() + ", match:"); _explainStructure(n, sfq.getMatch()); } else if (q instanceof SpanNearQuery) { // catch also known subclasses final SpanNearQuery snq = (SpanNearQuery) sq; setString(n, "text", getString(n, "text") + ", slop=" + snq.getSlop()); if (snq instanceof PayloadNearQuery) { try { final java.lang.reflect.Field function = PayloadNearQuery.class .getDeclaredField("function"); function.setAccessible(true); final Object func = function.get(snq); setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName()); } catch (final Exception e) { e.printStackTrace(); } } for (final SpanQuery sq1 : snq.getClauses()) { _explainStructure(n, sq1); } } else if (sqlass == SpanNotQuery.class) { final SpanNotQuery snq = (SpanNotQuery) sq; Object n1 = create("node"); add(n, n1); setString(n1, "text", "Include:"); _explainStructure(n1, snq.getInclude()); n1 = create("node"); add(n, n1); setString(n1, "text", "Exclude:"); _explainStructure(n1, snq.getExclude()); } else if (q instanceof SpanTermQuery) { final SpanTermQuery stq = (SpanTermQuery) sq; setString(n, "text", getString(n, "text") + ", term=" + stq.getTerm()); if (stq instanceof PayloadTermQuery) { try { final java.lang.reflect.Field function = PayloadTermQuery.class .getDeclaredField("function"); function.setAccessible(true); final Object func = function.get(stq); setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName()); } catch (final Exception e) { e.printStackTrace(); } } } else { final String defField = getDefaultField(find("srchOptTabs")); setString(n, "text", "class=" + q.getClass().getName() + ", " + getString(n, "text") + ", toString=" + q.toString(defField)); final HashSet<Term> terms = new HashSet<Term>(); sq.extractTerms(terms); Object n1 = null; if (terms != null) { n1 = create("node"); setString(n1, "text", "Matched terms (" + terms.size() + "):"); add(n, n1); final Iterator<Term> it = terms.iterator(); while (it.hasNext()) { final Object n2 = create("node"); final Term t = it.next(); setString(n2, "text", "field='" + t.field() + "' text='" + t.text() + "'"); add(n1, n2); } } else { n1 = create("node"); setString(n1, "text", "<no terms matched>"); add(n, n1); } } if (ir != null) { final Object n1 = null; /* * in Lucene 4.0 this requires traversal of sub- and leaf readers, which is cumbersome to do here. try { Spans * spans = sq.getSpans(ir); if (spans != null) { n1 = create("node"); int cnt = 0; while (spans.next()) { Object * n2 = create("node"); setString(n2, "text", "doc=" + spans.doc() + ", start=" + spans.start() + ", end=" + * spans.end()); add(n1, n2); cnt++; } if (cnt > 0) { add(n, n1); setString(n1, "text", "Spans (" + cnt + "):"); * setBoolean(n1, "expanded", false); } } } catch (Exception e) { e.printStackTrace(); n1 = create("node"); * setString(n1, "text", "Spans Exception: " + e.getMessage()); add(n, n1); } */ } } else { Object n1 = create("node"); final String defField = getDefaultField(find("srchOptTabs")); final Set<Term> terms = new HashSet<Term>(); q.extractTerms(terms); setString(n1, "text", q.getClass().getName() + ": " + q.toString(defField)); add(n, n1); if (!terms.isEmpty()) { n1 = create("node"); setString(n1, "text", "terms: " + terms); add(n, n1); } } }
From source file:org.exoplatform.services.jcr.api.namespaces.TestNamespaceRegistry.java
License:Open Source License
public void testTooManyFields() { try {/*from w ww. j a v a 2 s . c o m*/ namespaceRegistry.registerNamespace("tmf", "http://www.tmf.org/jcr"); int defClausesCount = BooleanQuery.getMaxClauseCount(); Node tr = root.addNode("testRoot"); for (int i = 0; i < defClausesCount + 10; i++) { tr.setProperty("prop" + i, i); } session.save(); // ok } catch (RepositoryException e) { e.printStackTrace(); fail(); } try { namespaceRegistry.unregisterNamespace("tmf"); } catch (NamespaceException e) { e.printStackTrace(); fail(); } catch (RepositoryException e) { e.printStackTrace(); fail(); } }
From source file:org.exoplatform.services.jcr.impl.core.query.SearchManager.java
License:Apache License
/** * Return set of uuid of nodes. Contains in names prefixes maped to the * given uri// w w w . j a v a 2 s .c om * * @param prefix * @return * @throws RepositoryException */ public Set<String> getNodesByUri(final String uri) throws RepositoryException { Set<String> result; final int defaultClauseCount = BooleanQuery.getMaxClauseCount(); try { // final LocationFactory locationFactory = new // LocationFactory(this); final ValueFactoryImpl valueFactory = new ValueFactoryImpl(new LocationFactory(nsReg), cleanerHolder); BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE); BooleanQuery query = new BooleanQuery(); final String prefix = nsReg.getNamespacePrefixByURI(uri); query.add(new WildcardQuery(new Term(FieldNames.LABEL, prefix + ":*")), Occur.SHOULD); // name of the property query.add(new WildcardQuery(new Term(FieldNames.PROPERTIES_SET, prefix + ":*")), Occur.SHOULD); result = getNodes(query); // value of the property try { final Set<String> props = getFieldNames(); query = new BooleanQuery(); for (final String fieldName : props) { if (!FieldNames.PROPERTIES_SET.equals(fieldName)) { query.add(new WildcardQuery(new Term(fieldName, "*" + prefix + ":*")), Occur.SHOULD); } } } catch (final IndexException e) { throw new RepositoryException(e.getLocalizedMessage(), e); } final Set<String> propSet = getNodes(query); // Manually check property values; for (final String uuid : propSet) { if (isPrefixMatch(valueFactory, uuid, prefix)) { result.add(uuid); } } } finally { BooleanQuery.setMaxClauseCount(defaultClauseCount); } return result; }
From source file:org.getopt.luke.Luke.java
License:Apache License
private void _explainStructure(Object parent, Query q) { String clazz = q.getClass().getName(); if (clazz.startsWith("org.apache.lucene.")) { clazz = "lucene." + q.getClass().getSimpleName(); } else if (clazz.startsWith("org.apache.solr.")) { clazz = "solr." + q.getClass().getSimpleName(); }//from w w w. j a v a 2 s.c om float boost = q.getBoost(); Object n = create("node"); add(parent, n); String msg = clazz; if (boost != 1.0f) { msg += ": boost=" + df.format(boost); } setFont(n, getFont().deriveFont(Font.BOLD)); setString(n, "text", msg); if (clazz.equals("lucene.TermQuery")) { Object n1 = create("node"); Term t = ((TermQuery) q).getTerm(); setString(n1, "text", "Term: field='" + t.field() + "' text='" + t.text() + "'"); add(n, n1); } else if (clazz.equals("lucene.BooleanQuery")) { BooleanQuery bq = (BooleanQuery) q; BooleanClause[] clauses = bq.getClauses(); int max = bq.getMaxClauseCount(); Object n1 = create("node"); String descr = "clauses=" + clauses.length + ", maxClauses=" + max; if (bq.isCoordDisabled()) { descr += ", coord=false"; } if (bq.getMinimumNumberShouldMatch() > 0) { descr += ", minShouldMatch=" + bq.getMinimumNumberShouldMatch(); } setString(n1, "text", descr); add(n, n1); for (int i = 0; i < clauses.length; i++) { n1 = create("node"); String occur; Occur occ = clauses[i].getOccur(); if (occ.equals(Occur.MUST)) { occur = "MUST"; } else if (occ.equals(Occur.MUST_NOT)) { occur = "MUST_NOT"; } else if (occ.equals(Occur.SHOULD)) { occur = "SHOULD"; } else { occur = occ.toString(); } setString(n1, "text", "Clause " + i + ": " + occur); add(n, n1); _explainStructure(n1, clauses[i].getQuery()); } } else if (clazz.equals("lucene.PrefixQuery")) { Object n1 = create("node"); PrefixQuery pq = (PrefixQuery) q; Term t = pq.getPrefix(); setString(n1, "text", "Prefix: field='" + t.field() + "' text='" + t.text() + "'"); add(n, n1); try { addTermsEnum(n, PrefixQuery.class, pq.getField(), pq); } catch (Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (clazz.equals("lucene.PhraseQuery")) { PhraseQuery pq = (PhraseQuery) q; setString(n, "text", getString(n, "text") + ", slop=" + pq.getSlop()); int[] pos = pq.getPositions(); Term[] terms = pq.getTerms(); Object n1 = create("node"); StringBuffer sb = new StringBuffer("pos: ["); for (int i = 0; i < pos.length; i++) { if (i > 0) sb.append(','); sb.append("" + pos[i]); } sb.append("]"); setString(n1, "text", sb.toString()); add(n, n1); for (int i = 0; i < terms.length; i++) { n1 = create("node"); setString(n1, "text", "Term " + i + ": field='" + terms[i].field() + "' text='" + terms[i].text() + "'"); add(n, n1); } } else if (clazz.equals("lucene.MultiPhraseQuery")) { MultiPhraseQuery pq = (MultiPhraseQuery) q; setString(n, "text", getString(n, "text") + ", slop=" + pq.getSlop()); int[] pos = pq.getPositions(); Object n1 = create("node"); StringBuffer sb = new StringBuffer("pos: ["); for (int i = 0; i < pos.length; i++) { if (i > 0) sb.append(','); sb.append("" + pos[i]); } sb.append("]"); setString(n1, "text", sb.toString()); add(n, n1); n1 = create("node"); System.err.println("MultiPhraseQuery is missing the public getTermArrays() :-("); setString(n1, "text", "toString: " + pq.toString()); add(n, n1); } else if (clazz.equals("lucene.FuzzyQuery")) { FuzzyQuery fq = (FuzzyQuery) q; Object n1 = create("node"); setString(n1, "text", "field=" + fq.getField() + ", prefixLen=" + fq.getPrefixLength() + ", maxEdits=" + df.format(fq.getMaxEdits())); add(n, n1); try { addTermsEnum(n, FuzzyQuery.class, fq.getField(), fq); } catch (Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (clazz.equals("lucene.WildcardQuery")) { WildcardQuery wq = (WildcardQuery) q; Term t = wq.getTerm(); setString(n, "text", getString(n, "text") + ", term=" + t); Automaton a = WildcardQuery.toAutomaton(t); addAutomaton(n, a); } else if (clazz.equals("lucene.TermRangeQuery")) { TermRangeQuery rq = (TermRangeQuery) q; setString(n, "text", getString(n, "text") + ", inclLower=" + rq.includesLower() + ", inclUpper=" + rq.includesUpper()); Object n1 = create("node"); setString(n1, "text", "lowerTerm=" + rq.getField() + ":" + rq.getLowerTerm() + "'"); add(n, n1); n1 = create("node"); setString(n1, "text", "upperTerm=" + rq.getField() + ":" + rq.getUpperTerm() + "'"); add(n, n1); try { addTermsEnum(n, TermRangeQuery.class, rq.getField(), rq); } catch (Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof AutomatonQuery) { AutomatonQuery aq = (AutomatonQuery) q; setString(n, "text", getString(n, "text") + ", " + aq.toString()); // get automaton try { java.lang.reflect.Field aField = AutomatonQuery.class.getDeclaredField("automaton"); aField.setAccessible(true); Automaton a = (Automaton) aField.get(aq); addAutomaton(n, a); } catch (Exception e) { e.printStackTrace(); Object n1 = create("node"); setString(n1, "text", "Automaton: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof MultiTermQuery) { MultiTermQuery mq = (MultiTermQuery) q; Set<Term> terms = new HashSet<Term>(); mq.extractTerms(terms); setString(n, "text", getString(n, "text") + ", terms: " + terms); try { addTermsEnum(n, TermRangeQuery.class, mq.getField(), mq); } catch (Exception e) { e.printStackTrace(); Object n1 = create("node"); setString(n1, "text", "TermEnum: Exception " + e.getMessage()); add(n, n1); } } else if (q instanceof ConstantScoreQuery) { ConstantScoreQuery cq = (ConstantScoreQuery) q; setString(n, "text", getString(n, "text") + ", " + cq.toString()); Object n1 = create("node"); add(n, n1); if (cq.getFilter() != null) { setString(n1, "text", "Filter: " + cq.getFilter().toString()); } else if (cq.getQuery() != null) { _explainStructure(n, cq.getQuery()); } } else if (q instanceof FilteredQuery) { FilteredQuery fq = (FilteredQuery) q; Object n1 = create("node"); setString(n1, "text", "Filter: " + fq.getFilter().toString()); add(n, n1); _explainStructure(n, fq.getQuery()); } else if (q instanceof SpanQuery) { SpanQuery sq = (SpanQuery) q; Class sqlass = sq.getClass(); setString(n, "text", getString(n, "text") + ", field=" + sq.getField()); if (sqlass == SpanOrQuery.class) { SpanOrQuery soq = (SpanOrQuery) sq; setString(n, "text", getString(n, "text") + ", " + soq.getClauses().length + " clauses"); for (SpanQuery sq1 : soq.getClauses()) { _explainStructure(n, sq1); } } else if (sqlass == SpanFirstQuery.class) { SpanFirstQuery sfq = (SpanFirstQuery) sq; setString(n, "text", getString(n, "text") + ", end=" + sfq.getEnd() + ", match:"); _explainStructure(n, sfq.getMatch()); } else if (q instanceof SpanNearQuery) { // catch also known subclasses SpanNearQuery snq = (SpanNearQuery) sq; setString(n, "text", getString(n, "text") + ", slop=" + snq.getSlop()); if (snq instanceof PayloadNearQuery) { try { java.lang.reflect.Field function = PayloadNearQuery.class.getDeclaredField("function"); function.setAccessible(true); Object func = function.get(snq); setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName()); } catch (Exception e) { e.printStackTrace(); } } for (SpanQuery sq1 : snq.getClauses()) { _explainStructure(n, sq1); } } else if (sqlass == SpanNotQuery.class) { SpanNotQuery snq = (SpanNotQuery) sq; Object n1 = create("node"); add(n, n1); setString(n1, "text", "Include:"); _explainStructure(n1, snq.getInclude()); n1 = create("node"); add(n, n1); setString(n1, "text", "Exclude:"); _explainStructure(n1, snq.getExclude()); } else if (q instanceof SpanTermQuery) { SpanTermQuery stq = (SpanTermQuery) sq; setString(n, "text", getString(n, "text") + ", term=" + stq.getTerm()); if (stq instanceof PayloadTermQuery) { try { java.lang.reflect.Field function = PayloadTermQuery.class.getDeclaredField("function"); function.setAccessible(true); Object func = function.get(stq); setString(n, "text", getString(n, "text") + ", func=" + func.getClass().getSimpleName()); } catch (Exception e) { e.printStackTrace(); } } } else { String defField = getDefaultField(find("srchOptTabs")); setString(n, "text", "class=" + q.getClass().getName() + ", " + getString(n, "text") + ", toString=" + q.toString(defField)); HashSet<Term> terms = new HashSet<Term>(); sq.extractTerms(terms); Object n1 = null; if (terms != null) { n1 = create("node"); setString(n1, "text", "Matched terms (" + terms.size() + "):"); add(n, n1); Iterator<Term> it = terms.iterator(); while (it.hasNext()) { Object n2 = create("node"); Term t = it.next(); setString(n2, "text", "field='" + t.field() + "' text='" + t.text() + "'"); add(n1, n2); } } else { n1 = create("node"); setString(n1, "text", "<no terms matched>"); add(n, n1); } } if (ir != null) { Object n1 = null; /* in Lucene 4.0 this requires traversal of sub- and leaf readers, * which is cumbersome to do here. try { Spans spans = sq.getSpans(ir); if (spans != null) { n1 = create("node"); int cnt = 0; while (spans.next()) { Object n2 = create("node"); setString(n2, "text", "doc=" + spans.doc() + ", start=" + spans.start() + ", end=" + spans.end()); add(n1, n2); cnt++; } if (cnt > 0) { add(n, n1); setString(n1, "text", "Spans (" + cnt + "):"); setBoolean(n1, "expanded", false); } } } catch (Exception e) { e.printStackTrace(); n1 = create("node"); setString(n1, "text", "Spans Exception: " + e.getMessage()); add(n, n1); } */ } } else { Object n1 = create("node"); String defField = getDefaultField(find("srchOptTabs")); Set<Term> terms = new HashSet<Term>(); q.extractTerms(terms); setString(n1, "text", q.getClass().getName() + ": " + q.toString(defField)); add(n, n1); if (!terms.isEmpty()) { n1 = create("node"); setString(n1, "text", "terms: " + terms); add(n, n1); } } }
From source file:org.polymap.alkis.model.AlkisRepository.java
License:Open Source License
/** * Configure and initializing the one and only global instance. *///from w w w. ja v a2s. c om private AlkisRepository() { try { log.info("Assembling repository..."); // Logging.GEOTOOLS.setLoggerFactory( "org.geotools.util.logging.CommonsLoggerFactory" ); // BooleanQuery.setMaxClauseCount(MAX_RESULTS * 2); log.info("Maximale Anzahl Lucene-Klauseln erhht auf: " + BooleanQuery.getMaxClauseCount()); // init fulltext File dataDir = new File(DATA_DIR); fulltextIndex = new LuceneFulltextIndex(new File(dataDir, "fulltext")); fulltextIndex.addTokenFilter(new LowerCaseTokenFilter()); // store Map<String, Object> params = new HashMap<String, Object>(); params.put("dbtype", "postgis"); params.put("host", "localhost"); params.put("port", 5432); params.put("schema", "public"); params.put("database", "ALKIS"); params.put("user", "postgres"); params.put("passwd", "postgres"); params.put(JDBCDataStoreFactory.MAXCONN.key, 24); params.put(JDBCDataStoreFactory.MAXWAIT.key, 20); ds = new PostgisNGDataStoreFactory().createDataStore(params); // primary key: gml_id ((JDBCDataStore) ds).setPrimaryKeyFinder(new PrimaryKeyFinder() { @Override public PrimaryKey getPrimaryKey(JDBCDataStore store, String schema, String table, Connection cx) throws SQLException { // Alkis_Beziehungen if (table.equals(Alkis_Beziehungen.TYPE.info().getNameInStore())) { AutoGeneratedPrimaryKeyColumn col = new AutoGeneratedPrimaryKeyColumn("ogc_fid", String.class); return new PrimaryKey(table, Collections.singletonList(col)); } // AX_* else { AutoGeneratedPrimaryKeyColumn col = new AutoGeneratedPrimaryKeyColumn("gml_id", String.class); return new PrimaryKey(table, Collections.singletonList(col)); } } }); FeatureStoreAdapter store = new FeatureStoreAdapter(ds).createOrUpdateSchemas.put(false); // repo repo = EntityRepository.newConfiguration().entities.set(new Class[] { AX_Flurstueck.class, AX_Buchungsstelle.class, AX_Buchungsblatt.class, AX_Buchungsblattbezirk.class, AX_Person.class, AX_Anschrift.class, AX_LagebezeichnungMitHausnummer.class, AX_LagebezeichnungOhneHausnummer.class, AX_LagebezeichnungKatalog.class, AX_Namensnummer.class, AX_Gemarkung.class, AX_Gemeinde.class, Alkis_Beziehungen.class }).store.set( //new FulltextIndexer( fulltextIndex, new TypeFilter( Waldbesitzer.class ), newArrayList( wbTransformer ), store) //) .create(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } }
From source file:org.polymap.kaps.ui.filter.VertraegeFuerBaujahrUndGebaeudeartFilter.java
License:Open Source License
protected Query<VertragComposite> createFilterQuery(final IFilterEditorSite site, final KapsRepository repository) { List<GebaeudeArtComposite> gebaeudeArten = (List<GebaeudeArtComposite>) site.getFieldValue("gebart"); NutzungComposite nutzung = (NutzungComposite) site.getFieldValue("nutzung"); VertragsArtComposite art = (VertragsArtComposite) site.getFieldValue("vertragsart"); Object[] vertragsDatum = (Object[]) site.getFieldValue("datum"); BooleanExpression vertragsDatumExpr = null; if (vertragsDatum != null) { VertragComposite dateTemplate = QueryExpressions.templateFor(VertragComposite.class); BooleanExpression ge = vertragsDatum[0] != null ? QueryExpressions.ge(dateTemplate.vertragsDatum(), dayStart((Date) vertragsDatum[0])) : null;/*from www .ja v a2 s . c o m*/ BooleanExpression le = vertragsDatum[1] != null ? QueryExpressions.le(dateTemplate.vertragsDatum(), dayEnd((Date) vertragsDatum[1])) : null; if (ge != null) { vertragsDatumExpr = ge; } if (le != null) { vertragsDatumExpr = vertragsDatumExpr == null ? le : QueryExpressions.and(ge, le); } } if (art != null) { VertragComposite vTemplate = QueryExpressions.templateFor(VertragComposite.class); BooleanExpression artExpr = QueryExpressions.eq(vTemplate.vertragsArt(), art); if (vertragsDatumExpr == null) { vertragsDatumExpr = artExpr; } else { vertragsDatumExpr = QueryExpressions.and(vertragsDatumExpr, artExpr); } } // nach Vertragsdatum vorsortieren fhrt zu StackOverflow Set<VertragComposite> vertraegeNachDatum = null; if (vertragsDatumExpr != null) { vertraegeNachDatum = Sets.newHashSet(); Query<VertragComposite> vertraege = repository().findEntities(VertragComposite.class, vertragsDatumExpr, 0, -1); for (VertragComposite vertrag : vertraege) { vertraegeNachDatum.add(vertrag); } } BooleanExpression fExpr = null; VertragComposite template = QueryExpressions.templateFor(VertragComposite.class); // if (gebaeude != null || nutzung != null || gemeinde != null) { FlurstueckComposite flurTemplate = QueryExpressions.templateFor(FlurstueckComposite.class); // gemeinde BooleanExpression gExpr = null; GemeindeComposite gemeinde = (GemeindeComposite) site.getFieldValue("gemeinde"); GemarkungComposite gemarkung = (GemarkungComposite) site.getFieldValue("gemarkung"); if (gemarkung != null) { gExpr = QueryExpressions.eq(flurTemplate.gemarkung(), gemarkung); } else if (gemeinde != null) { GemarkungComposite gemarkungTemplate = QueryExpressions.templateFor(GemarkungComposite.class); Query<GemarkungComposite> gemarkungen = repository().findEntities(GemarkungComposite.class, QueryExpressions.eq(gemarkungTemplate.gemeinde(), gemeinde), 0, -1); for (GemarkungComposite gemarkungg : gemarkungen) { BooleanExpression newExpr = QueryExpressions.eq(flurTemplate.gemarkung(), gemarkungg); if (gExpr == null) { gExpr = newExpr; } else { gExpr = QueryExpressions.or(gExpr, newExpr); } } } BooleanExpression qExpr = null; if (gebaeudeArten != null) { for (GebaeudeArtComposite gebaeudeArt : gebaeudeArten) { BooleanExpression newExpr = QueryExpressions.eq(flurTemplate.gebaeudeArt(), gebaeudeArt); if (qExpr == null) { qExpr = newExpr; } else { qExpr = QueryExpressions.or(qExpr, newExpr); } } } BooleanExpression nExpr = nutzung != null ? QueryExpressions.eq(flurTemplate.nutzung(), nutzung) : null; if (qExpr != null) { if (gExpr != null) { qExpr = QueryExpressions.and(qExpr, gExpr); } } else { qExpr = gExpr; } if (qExpr != null) { if (nExpr != null) { qExpr = QueryExpressions.and(qExpr, nExpr); } } else { qExpr = nExpr; } Set<VertragComposite> vertraegeNachDatumUndFlurstueck = null; if (qExpr != null) { // flurstcke eingeschrnkt, falls keine gefunden werden ist das set leer vertraegeNachDatumUndFlurstueck = new HashSet<VertragComposite>(); Query<FlurstueckComposite> flurstuecke = repository().findEntities(FlurstueckComposite.class, qExpr, 0, -1); for (FlurstueckComposite fc : flurstuecke) { // mehrere Flurstcke knnen einem Vertrag angehren VertragComposite vertrag = fc.vertrag().get(); if (vertrag != null) { if (vertraegeNachDatum == null || vertraegeNachDatum.contains(vertrag)) { vertraegeNachDatumUndFlurstueck.add(vertrag); } } } } else { // ansonsten flurstcke nicht weiter eingeschrnkt, nimm alle nach Datum vertraegeNachDatumUndFlurstueck = vertraegeNachDatum; } Object[] jahre = (Object[]) site.getFieldValue("baujahr"); Set<VertragComposite> vertraegeNachDatumUndFlurstueckUndBaujahr = null; if (jahre != null) { vertraegeNachDatumUndFlurstueckUndBaujahr = new HashSet<VertragComposite>(); VertragsdatenBaulandComposite dateTemplate = QueryExpressions .templateFor(VertragsdatenBaulandComposite.class); BooleanExpression expr2 = null; BooleanExpression ge = jahre[0] != null ? QueryExpressions.ge(dateTemplate.baujahr(), Integer.parseInt((String) jahre[0])) : null; BooleanExpression le = jahre[1] != null ? QueryExpressions.le(dateTemplate.baujahr(), Integer.parseInt((String) jahre[1])) : null; if (ge != null) { expr2 = ge; } if (le != null) { expr2 = expr2 == null ? le : QueryExpressions.and(ge, le); } if (expr2 != null) { Query<VertragsdatenBaulandComposite> daten = repository() .findEntities(VertragsdatenBaulandComposite.class, expr2, 0, -1); for (VertragsdatenBaulandComposite kv : daten) { VertragComposite v = kv.vertrag().get(); if (vertraegeNachDatumUndFlurstueck == null || vertraegeNachDatumUndFlurstueck.contains(v)) { // ist schon in Menge vorhanden, also auch hier rein vertraegeNachDatumUndFlurstueckUndBaujahr.add(v); } } } } else { vertraegeNachDatumUndFlurstueckUndBaujahr = vertraegeNachDatumUndFlurstueck; } if (vertraegeNachDatumUndFlurstueckUndBaujahr != null) { if (vertraegeNachDatumUndFlurstueckUndBaujahr.size() > 5000) { sessionDisplay().asyncExec(new Runnable() { public void run() { MessageDialog.openError(PolymapWorkbench.getShellToParentOn(), "Zu viele Ergebnisse", "Es wurden ber 5000 Ergebnisse gefunden. Bitte schrnken Sie die Suche weiter ein."); } }); return repository().findEntities(VertragComposite.class, QueryExpressions.eq(template.identity(), "unknown"), 0, -1); } for (VertragComposite vertrag : vertraegeNachDatumUndFlurstueckUndBaujahr) { BooleanExpression newExpr = QueryExpressions.eq(template.identity(), vertrag.id()); if (fExpr == null) { fExpr = newExpr; } else { fExpr = QueryExpressions.or(fExpr, newExpr); } } } String urkunde = (String) site.getFieldValue("urkunde"); if (urkunde != null && !urkunde.trim().isEmpty()) { BooleanExpression newExpr = QueryExpressions.eq(template.urkundenNummer(), urkunde.trim()); if (fExpr == null) { fExpr = newExpr; } else { fExpr = QueryExpressions.and(fExpr, newExpr); } } String notariat = (String) site.getFieldValue("notariat"); if (notariat != null && !notariat.trim().isEmpty()) { BooleanExpression newExpr = QueryExpressions.eq(template.notariat(), notariat.trim()); if (fExpr == null) { fExpr = newExpr; } else { fExpr = QueryExpressions.and(fExpr, newExpr); } } // wenn keine gefunden, ungltige Query erzeugen, damit auch keine // Vertrge gefunden werden if (fExpr == null) { fExpr = QueryExpressions.eq(template.identity(), "unknown"); } int oldMax = BooleanQuery.getMaxClauseCount(); try { BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE); return repository().findEntities(VertragComposite.class, fExpr, 0, getMaxResults()); } finally { BooleanQuery.setMaxClauseCount(oldMax); } }
From source file:org.polymap.kaps.ui.filter.VertragsdatenAgrarAgrarFilter.java
License:Open Source License
@Override protected Query<VertragsdatenAgrarComposite> createFilterQuery(final IFilterEditorSite site, final KapsRepository repository) { List<NutzungComposite> nutzungen = (List<NutzungComposite>) site.getFieldValue("nutzung"); List<BodennutzungComposite> bodennutzungen = (List<BodennutzungComposite>) site .getFieldValue("bodennutzung"); List<GemeindeComposite> gemeinden = (List<GemeindeComposite>) site.getFieldValue("gemeinde"); Integer nutzungsGroesseMin = (Integer) site.getFieldValue("nutzungsGroesseMin"); Integer nutzungsGroesseMax = (Integer) site.getFieldValue("nutzungsGroesseMax"); Object[] vertragsDatum = (Object[]) site.getFieldValue("datum"); BooleanExpression vertragsDatumExpr = null; if (vertragsDatum != null) { VertragComposite dateTemplate = QueryExpressions.templateFor(VertragComposite.class); BooleanExpression ge = vertragsDatum[0] != null ? QueryExpressions.ge(dateTemplate.vertragsDatum(), dayStart((Date) vertragsDatum[0])) : null;/*from w ww . j a v a 2s.c o m*/ BooleanExpression le = vertragsDatum[1] != null ? QueryExpressions.le(dateTemplate.vertragsDatum(), dayEnd((Date) vertragsDatum[1])) : null; if (ge != null) { vertragsDatumExpr = ge; } if (le != null) { vertragsDatumExpr = vertragsDatumExpr == null ? le : QueryExpressions.and(ge, le); } } BooleanExpression fExpr = null; VertragsdatenAgrarComposite template = QueryExpressions.templateFor(VertragsdatenAgrarComposite.class); FlurstueckComposite flurTemplate = QueryExpressions.templateFor(FlurstueckComposite.class); // nach Vertragsdatum vorsortieren fhrt zu StackOverflow Set<VertragComposite> vertraegeNachDatum = null; if (vertragsDatumExpr != null) { vertraegeNachDatum = Sets.newHashSet(); Query<VertragComposite> vertraege = repository().findEntities(VertragComposite.class, vertragsDatumExpr, 0, -1); for (VertragComposite vertrag : vertraege) { vertraegeNachDatum.add(vertrag); } } // gemeinde BooleanExpression gExpr = null; List<GemarkungComposite> gemarkungen = (List<GemarkungComposite>) site.getFieldValue("gemarkung"); if (gemarkungen != null) { for (GemarkungComposite gemarkung : gemarkungen) { BooleanExpression newExpr = QueryExpressions.eq(flurTemplate.gemarkung(), gemarkung); if (gExpr == null) { gExpr = newExpr; } else { gExpr = QueryExpressions.or(gExpr, newExpr); } } } else if (gemeinden != null) { GemarkungComposite gemarkungTemplate = QueryExpressions.templateFor(GemarkungComposite.class); BooleanExpression gSubExpr = null; for (GemeindeComposite gemeinde : gemeinden) { BooleanExpression newExpr = QueryExpressions.eq(gemarkungTemplate.gemeinde(), gemeinde); if (gSubExpr == null) { gSubExpr = newExpr; } else { gSubExpr = QueryExpressions.or(gSubExpr, newExpr); } } if (gSubExpr == null) { gSubExpr = QueryExpressions.eq(gemarkungTemplate.identity(), "unknown"); } Query<GemarkungComposite> subGemarkungen = repository().findEntities(GemarkungComposite.class, gSubExpr, 0, -1); for (GemarkungComposite gemarkungg : subGemarkungen) { BooleanExpression newExpr = QueryExpressions.eq(flurTemplate.gemarkung(), gemarkungg); if (gExpr == null) { gExpr = newExpr; } else { gExpr = QueryExpressions.or(gExpr, newExpr); } } // gemeinde gewhlt, aber keine gemeinden gefunden if (gExpr == null) { gExpr = QueryExpressions.eq(flurTemplate.identity(), "unknown"); } } // nutzungen BooleanExpression nExpr = null; if (nutzungen != null) { for (NutzungComposite nutzung : nutzungen) { BooleanExpression newExpr = QueryExpressions.eq(flurTemplate.nutzung(), nutzung); if (nExpr == null) { nExpr = newExpr; } else { nExpr = QueryExpressions.or(nExpr, newExpr); } } } if (nExpr != null) { if (gExpr != null) { nExpr = QueryExpressions.and(nExpr, gExpr); } } else { nExpr = gExpr; } Set<VertragComposite> vertraegeNachDatumUndFlurstueck = new HashSet<VertragComposite>(); if (nExpr != null) { Query<FlurstueckComposite> flurstuecke = repository().findEntities(FlurstueckComposite.class, nExpr, 0, -1); for (FlurstueckComposite fc : flurstuecke) { // mehrere Flurstcke knnen einem Vertrag angehren VertragComposite vertrag = fc.vertrag().get(); if (vertrag != null) { if ((vertraegeNachDatum == null || vertraegeNachDatum.contains(vertrag))) { vertraegeNachDatumUndFlurstueck.add(vertrag); } } } } if (vertraegeNachDatumUndFlurstueck.size() > 5000) { sessionDisplay().asyncExec(new Runnable() { public void run() { MessageDialog.openError(PolymapWorkbench.getShellToParentOn(), "Zu viele Ergebnisse", "Es wurden ber 5000 Ergebnisse gefunden. Bitte schrnken Sie die Suche weiter ein."); } }); return repository().findEntities(VertragsdatenAgrarComposite.class, QueryExpressions.eq(template.identity(), "unknown"), 0, -1); } for (VertragComposite vertrag : vertraegeNachDatumUndFlurstueck) { BooleanExpression newExpr = QueryExpressions.eq(template.vertrag(), vertrag); if (fExpr == null) { fExpr = newExpr; } else { fExpr = QueryExpressions.or(fExpr, newExpr); } } // wenn keine vertrge gefunden, ungltige Query erzeugen, damit auch keine // Vertrge gefunden werden if (fExpr == null) { fExpr = QueryExpressions.eq(template.identity(), "unknown"); } // } BooleanExpression bExpr = null; if (bodennutzungen != null) { for (BodennutzungComposite nutzung : bodennutzungen) { BooleanExpression newExpr = QueryExpressions.or( QueryExpressions.eq(template.bodennutzung1(), nutzung), QueryExpressions.eq(template.bodennutzung2(), nutzung), QueryExpressions.eq(template.bodennutzung3(), nutzung), QueryExpressions.eq(template.bodennutzung4(), nutzung), QueryExpressions.eq(template.bodennutzung5(), nutzung), QueryExpressions.eq(template.bodennutzung6(), nutzung)); if (bExpr == null) { bExpr = newExpr; } else { bExpr = QueryExpressions.or(bExpr, newExpr); } } } if (bExpr != null) { fExpr = QueryExpressions.and(bExpr, fExpr); } BooleanExpression bodenExp1 = getBodennutzungExpression(template.bodennutzung1(), bodennutzungen); BooleanExpression bodenExp2 = getBodennutzungExpression(template.bodennutzung2(), bodennutzungen); BooleanExpression bodenExp3 = getBodennutzungExpression(template.bodennutzung3(), bodennutzungen); BooleanExpression bodenExp4 = getBodennutzungExpression(template.bodennutzung4(), bodennutzungen); BooleanExpression bodenExp5 = getBodennutzungExpression(template.bodennutzung5(), bodennutzungen); BooleanExpression bodenExp6 = getBodennutzungExpression(template.bodennutzung6(), bodennutzungen); BooleanExpression greaterEquals = null; if (nutzungsGroesseMin != null) { BooleanExpression nutzungExp1 = QueryExpressions.ge(template.flaechenAnteil1(), Double.valueOf(nutzungsGroesseMin)); BooleanExpression nutzungExp2 = QueryExpressions.ge(template.flaechenAnteil2(), Double.valueOf(nutzungsGroesseMin)); BooleanExpression nutzungExp3 = QueryExpressions.ge(template.flaechenAnteil3(), Double.valueOf(nutzungsGroesseMin)); BooleanExpression nutzungExp4 = QueryExpressions.ge(template.flaechenAnteil4(), Double.valueOf(nutzungsGroesseMin)); BooleanExpression nutzungExp5 = QueryExpressions.ge(template.flaechenAnteil5(), Double.valueOf(nutzungsGroesseMin)); BooleanExpression nutzungExp6 = QueryExpressions.ge(template.flaechenAnteil6(), Double.valueOf(nutzungsGroesseMin)); greaterEquals = QueryExpressions.or( (bodenExp1 != null ? QueryExpressions.and(nutzungExp1, bodenExp1) : nutzungExp1), (bodenExp2 != null ? QueryExpressions.and(nutzungExp2, bodenExp2) : nutzungExp2), (bodenExp3 != null ? QueryExpressions.and(nutzungExp3, bodenExp3) : nutzungExp3), (bodenExp4 != null ? QueryExpressions.and(nutzungExp4, bodenExp4) : nutzungExp4), (bodenExp5 != null ? QueryExpressions.and(nutzungExp5, bodenExp5) : nutzungExp5), (bodenExp6 != null ? QueryExpressions.and(nutzungExp6, bodenExp6) : nutzungExp6)); } BooleanExpression flaecheExpression = null; BooleanExpression lowerEquals = null; if (nutzungsGroesseMax != null) { BooleanExpression nutzungExp1 = QueryExpressions.le(template.flaechenAnteil1(), Double.valueOf(nutzungsGroesseMax)); BooleanExpression nutzungExp2 = QueryExpressions.le(template.flaechenAnteil2(), Double.valueOf(nutzungsGroesseMax)); BooleanExpression nutzungExp3 = QueryExpressions.le(template.flaechenAnteil3(), Double.valueOf(nutzungsGroesseMax)); BooleanExpression nutzungExp4 = QueryExpressions.le(template.flaechenAnteil4(), Double.valueOf(nutzungsGroesseMax)); BooleanExpression nutzungExp5 = QueryExpressions.le(template.flaechenAnteil5(), Double.valueOf(nutzungsGroesseMax)); BooleanExpression nutzungExp6 = QueryExpressions.le(template.flaechenAnteil6(), Double.valueOf(nutzungsGroesseMax)); lowerEquals = QueryExpressions.or( (bodenExp1 != null ? QueryExpressions.and(nutzungExp1, bodenExp1) : nutzungExp1), (bodenExp2 != null ? QueryExpressions.and(nutzungExp2, bodenExp2) : nutzungExp2), (bodenExp3 != null ? QueryExpressions.and(nutzungExp3, bodenExp3) : nutzungExp3), (bodenExp4 != null ? QueryExpressions.and(nutzungExp4, bodenExp4) : nutzungExp4), (bodenExp5 != null ? QueryExpressions.and(nutzungExp5, bodenExp5) : nutzungExp5), (bodenExp6 != null ? QueryExpressions.and(nutzungExp6, bodenExp6) : nutzungExp6)); } if (greaterEquals != null) { if (lowerEquals != null) { flaecheExpression = QueryExpressions.and(greaterEquals, lowerEquals); } else { flaecheExpression = greaterEquals; } } else { flaecheExpression = lowerEquals; } if (flaecheExpression != null) { fExpr = QueryExpressions.and(flaecheExpression, fExpr); } int oldMax = BooleanQuery.getMaxClauseCount(); try { BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE); return repository().findEntities(VertragsdatenAgrarComposite.class, fExpr, 0, getMaxResults()); } finally { BooleanQuery.setMaxClauseCount(oldMax); } }
From source file:org.polymap.wbv.model.WbvRepository.java
License:Open Source License
/** * Configure and initializing the repository. */// w ww . j a va2 s . co m public static void init() { try { log.info("Assembling repository..."); // // find service for SERVICE_ID // IService service = null; // URL url = RServiceExtension.toURL( DB_NAME ); // ICatalog catalog = CatalogPlugin.getDefault().getLocalCatalog(); // List<IResolve> canditates = catalog.find( url, new NullProgressMonitor() ); // for (IResolve resolve : canditates) { // if (resolve instanceof IService) { // service = (IService)resolve; // } // } // if (service == null) { // throw new RuntimeException( "Kein Service im Katalog fr URL: " + url ); // } // BooleanQuery.setMaxClauseCount(8 * 1024); log.info("Maximale Anzahl Lucene-Klauseln erhht auf: " + BooleanQuery.getMaxClauseCount()); // init fulltext @SuppressWarnings("deprecation") File wbvDir = new File(Polymap.getDataDir(), WbvPlugin.ID); fulltextIndex = new LuceneFulltextIndex(new File(wbvDir, "fulltext")); fulltextIndex.setTokenizer(new WbvTokenizer()); fulltextIndex.addTokenFilter(new LowerCaseTokenFilter()); WaldbesitzerFulltextTransformer wbTransformer = new WaldbesitzerFulltextTransformer(); // // find DataStore from service // DataAccess ds = service.resolve( DataAccess.class, new NullProgressMonitor() ); // if (ds == null) { // throw new RuntimeException( "Kein DataStore fr Service: " + service ); // } // create repo @SuppressWarnings("deprecation") IRecordStore store = LuceneRecordStore.newConfiguration().indexDir .put(new File(Polymap.getDataDir(), "recordstore/WBV")).create(); repo = EntityRepository.newConfiguration().entities.set(new Class[] { Revier.class, Waldstueck.class, Waldbesitzer.class, Kontakt.class, Flurstueck.class, Gemarkung.class }).store .set(new OptimisticLocking(new FulltextIndexer(fulltextIndex, new TypeFilter(Waldbesitzer.class), newArrayList(wbTransformer), new RecordStoreAdapter(store)))).commitLockStrategy.set(() -> // other strategies are not thoroughly tested new CommitLockStrategy.Serialize()).create(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } }