List of usage examples for org.apache.lucene.search.suggest.analyzing FreeTextSuggester FreeTextSuggester
public FreeTextSuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, int grams, byte separator)
From source file:net.tourbook.search.FTSearchManager.java
License:Open Source License
private static Lookup setupSuggester_FreeText() { setupIndexReader();//from w w w .ja va 2 s. c o m final int numDocs = _indexReader.numDocs(); if (numDocs == 0) { /* * Suggester for 0 documents causes an exception */ return null; } final Lookup suggester[] = new FreeTextSuggester[1]; Display.getDefault().syncExec(new Runnable() { @Override public void run() { BusyIndicator.showWhile(Display.getDefault(), new Runnable() { @Override public void run() { try { final DocumentInputIterator inputIterator = new DocumentInputIterator(_indexReader); // final Analyzer queryAnalyzer = new WhitespaceAnalyzer(); final Analyzer queryAnalyzer = new StandardAnalyzer(new CharArraySet(0, true)); suggester[0] = new FreeTextSuggester(queryAnalyzer, queryAnalyzer, 4, (byte) 0x20); try { suggester[0].build(inputIterator); } catch (final IllegalArgumentException e) { // java.lang.IllegalArgumentException: need at least one suggestion /* * This exception can occure when there are documents available but * do not contain any content which the suggester can use. */ } } catch (final Exception e) { StatusUtil.showStatus(e); } } }); } }); return suggester[0]; }
From source file:org.apache.solr.spelling.suggest.fst.FreeTextLookupFactory.java
License:Apache License
@Override public Lookup create(NamedList params, SolrCore core) { Object fieldTypeName = params.get(QUERY_ANALYZER); if (fieldTypeName == null) { throw new IllegalArgumentException( "Error in configuration: " + QUERY_ANALYZER + " parameter is mandatory"); }//from w w w .j av a2s. c o m FieldType ft = core.getLatestSchema().getFieldTypeByName(fieldTypeName.toString()); if (ft == null) { throw new IllegalArgumentException( "Error in configuration: " + fieldTypeName.toString() + " is not defined in the schema"); } Analyzer indexAnalyzer = ft.getIndexAnalyzer(); Analyzer queryAnalyzer = ft.getQueryAnalyzer(); int grams = (params.get(NGRAMS) != null) ? Integer.parseInt(params.get(NGRAMS).toString()) : FreeTextSuggester.DEFAULT_GRAMS; byte separator = (params.get(SEPARATOR) != null) ? params.get(SEPARATOR).toString().getBytes(StandardCharsets.UTF_8)[0] : FreeTextSuggester.DEFAULT_SEPARATOR; return new FreeTextSuggester(indexAnalyzer, queryAnalyzer, grams, separator); }