List of usage examples for org.apache.lucene.search Query toString
@Override public final String toString()
From source file:ai.castor.idf.IDFScorer.java
License:Apache License
public double calcIDF(String query, String answer, boolean analyze) throws ParseException { Analyzer analyzer;//from www . j ava 2s . c om if (analyze) { analyzer = new EnglishAnalyzer(StopFilter.makeStopSet(stopWords)); } else { analyzer = new WhitespaceAnalyzer(); } QueryParser qp = new QueryParser(FIELD_BODY, analyzer); ClassicSimilarity similarity = new ClassicSimilarity(); String escapedQuery = qp.escape(query); Query question = qp.parse(escapedQuery); HashSet<String> questionTerms = new HashSet<>(Arrays.asList(question.toString().trim().split("\\s+"))); double idf = 0.0; HashSet<String> seenTerms = new HashSet<>(); String[] terms = answer.split("\\s+"); for (String term : terms) { try { TermQuery q = (TermQuery) qp.parse(term); Term t = q.getTerm(); if (questionTerms.contains(t.toString()) && !seenTerms.contains(t.toString())) { idf += similarity.idf(reader.docFreq(t), reader.numDocs()); seenTerms.add(t.toString()); } else { idf += 0.0; } } catch (Exception e) { continue; } } return idf; }
From source file:aos.lucene.search.advanced.MultiPhraseQueryTest.java
License:Apache License
public void testQueryParser() throws Exception { SynonymEngine engine = new SynonymEngine() { public String[] getSynonyms(String s) { if (s.equals("quick")) return new String[] { "fast" }; else/* w ww .ja v a 2 s .c om*/ return null; } }; Query q = new QueryParser(Version.LUCENE_46, "field", new SynonymAnalyzer(engine)).parse("\"quick fox\""); assertEquals("analyzed", "field:\"(quick fast) fox\"", q.toString()); assertTrue("parsed as MultiPhraseQuery", q instanceof MultiPhraseQuery); }
From source file:aos.lucene.search.advanced.SortingExample.java
License:Apache License
public void displayResults(Query query, Sort sort) // throws IOException { IndexSearcher searcher = new IndexSearcher(directory); searcher.setDefaultFieldSortScoring(true, false); // TopDocs results = searcher.search(query, null, // 20, sort); // LOGGER.info("\nResults for: " + // query.toString() + " sorted by " + sort); LOGGER.info(StringUtils.rightPad("Title", 30) + StringUtils.rightPad("pubmonth", 10) + StringUtils.center("id", 4) + StringUtils.center("score", 15)); PrintStream out = new PrintStream(System.out, true, "UTF-8"); // DecimalFormat scoreFormatter = new DecimalFormat("0.######"); for (ScoreDoc sd : results.scoreDocs) { int docID = sd.doc; float score = sd.score; Document doc = searcher.doc(docID); out.println(StringUtils.rightPad( // StringUtils.abbreviate(doc.get("title"), 29), 30) + // StringUtils.rightPad(doc.get("pubmonth"), 10) + // StringUtils.center("" + docID, 4) + // StringUtils.leftPad( // scoreFormatter.format(score), 12)); // out.println(" " + doc.get("category")); //out.println(searcher.explain(query, docID)); // }// www.j av a 2s .c o m searcher.close(); }
From source file:at.ac.univie.mminf.luceneSKOS.analysis.SKOSLabelFilterTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, ParseException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc);//from ww w. j a v a 2s . c om searcher = new IndexSearcher(IndexReader.open(writer, false)); Query query = new QueryParser(Version.LUCENE_36, "content", skosAnalyzer).parse("\"fox jumps\""); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); Assert.assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new QueryParser(Version.LUCENE_36, "content", new StandardAnalyzer(Version.LUCENE_36)) .parse("\"fox jumps\""); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:\"fox jumps\"", query.toString()); Assert.assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.queryparser.flexible.standard.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*ww w . j ava2 s . co m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new SKOSStandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content"); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); Assert.assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new StandardQueryParser(new StandardAnalyzer(matchVersion)).parse("\"fox jumps\"", "content"); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:\"fox jumps\"", query.toString()); Assert.assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.queryparser.flexible.standard.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearchWithBoosts() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/* w ww .jav a 2 s .c o m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); SKOSStandardQueryParser parser = new SKOSStandardQueryParser(skosAnalyzer); parser.setBoost(SKOSType.ALT, 0.5f); Query query = parser.parse("\"fox jumps\"", "content"); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); // boosts do not work in phrase queries Assert.assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); Assert.assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = parser.parse("fox jumps", "content"); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:fox (content:jumps content:hops^0.5 content:leaps^0.5)", query.toString()); Assert.assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); query = new SKOSStandardQueryParser(new StandardAnalyzer(matchVersion)).parse("fox jumps", "content"); Assert.assertEquals(1, TestUtil.hitCount(searcher, query)); Assert.assertEquals("content:fox content:jumps", query.toString()); Assert.assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*from ww w. j av a2 s.co m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new StandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new StandardQueryParser(new StandardAnalyzer()).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox jumps\"", query.toString()); assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*w w w .j ava 2s .com*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new SKOSStandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new StandardQueryParser(new StandardAnalyzer()).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox jumps\"", query.toString()); assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearchWithBoosts() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);//ww w .java 2s .c om searcher = new IndexSearcher(DirectoryReader.open(writer, false)); SKOSStandardQueryParser parser = new SKOSStandardQueryParser(skosAnalyzer); parser.setBoost(SKOSType.ALT, 0.5f); Query query = parser.parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); // boosts do not work in phrase queries assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = parser.parse("fox jumps", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:fox (content:jumps content:hops^0.5 content:leaps^0.5)", query.toString()); assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); query = new SKOSStandardQueryParser(new StandardAnalyzer()).parse("fox jumps", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:fox content:jumps", query.toString()); assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); }
From source file:au.org.ala.names.search.ALANameSearcher.java
License:Open Source License
/** * Multiple genus indicate that an unresolved homonym exists for the supplied * search details.//from w w w . j a v a2 s.c o m * * @param cl The classification to test * @param rank The rank level of the homonym being tested either RankType.GENUS or RankType.SPECIES */ public TopDocs getIRMNGGenus(LinnaeanRankClassification cl, RankType rank) { if (cl != null && (cl.getGenus() != null || cl.getSpecies() != null)) { try { String searchString = "+rank:" + rank + " " + cl.getLuceneSearchString(false).trim(); log.debug("Search string : " + searchString + " classification : " + cl); Query query = queryParser.get().parse(searchString); log.debug("getIRMNG query: " + query.toString()); return irmngSearcher.search(query, 10); } catch (Exception e) { log.warn("Error searching IRMNG index.", e); } } return null; }