@Override protected Analyzer getAnalyzer(String fieldName) { Analyzer analyzer = analyzers.get(fieldName); return analyzer!=null ? analyzer : getDynamicFieldType(fieldName).getQueryAnalyzer(); } }
/** * @param language * @param indexField * @param analyzer * @param fst * @param allowCreation */ protected CorpusInfo(String language, String indexField, String storeField, FieldType fieldType, File fst, boolean allowCreation){ this.language = language; this.indexedField = indexField; this.storedField = storeField; this.fst = fst; this.allowCreation = allowCreation; this.analyzer = fieldType.getAnalyzer(); this.taggingAnalyzer = fieldType.getQueryAnalyzer(); this.fstDate = fst.isFile() ? new Date(fst.lastModified()) : null; } /**
@Override protected HashMap<String,Analyzer> analyzerCache() { HashMap<String,Analyzer> cache = new HashMap<String,Analyzer>(); for (SchemaField f : getFields().values()) { Analyzer analyzer = f.getType().getQueryAnalyzer(); cache.put(f.getName(), analyzer); } return cache; }
@Override public QuerqyParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) { IndexSchema schema = req.getSchema(); Analyzer rewriteAnalyzer = schema.getFieldTypeByName( queryParsingFieldType).getQueryAnalyzer(); Analyzer synonymAnalyzer = (synonymsfieldType != null) ? schema.getFieldTypeByName(synonymsfieldType) .getQueryAnalyzer() : null; return new AnalyzingQuerqyParser(rewriteAnalyzer, synonymAnalyzer); }
/** * analyzes string like the given field * @param field the name of the field * @param value the string to analyze * @return the analyzed string */ public static String analyzeString(SolrCore core, String field, String value) { try { StringBuilder b = new StringBuilder(); try (TokenStream ts = core.getLatestSchema().getFieldType(field).getQueryAnalyzer().tokenStream(field, new StringReader(value))) { ts.reset(); while (ts.incrementToken()) { b.append(" "); CharTermAttribute attr = ts.getAttribute(CharTermAttribute.class); b.append(attr); } } return b.toString().trim(); } catch (IOException e) { //FIXME: This error should be properly logged! e.printStackTrace(); return value; } }
throw new RuntimeException("Can't set positionIncrementGap on custom analyzer " + analyzer.getClass()); analyzer = getQueryAnalyzer(); if (analyzer instanceof SolrAnalyzer) { ((SolrAnalyzer)analyzer).setPositionIncrementGap(Integer.parseInt(positionInc));
if (fieldType != null) { if (this.settings.analyzerMode == AnalyzerModes.query) { namedAnalyzers.put(fieldTypeName, fieldType.getQueryAnalyzer()); } else if (this.settings.analyzerMode == AnalyzerModes.multiTerm) { "", this.indexSchema.getFieldTypeByName( this.settings.defaultFieldTypeName).getQueryAnalyzer()); } else if (this.settings.analyzerMode == AnalyzerModes.multiTerm) { namedAnalyzers.put("", ((TextField) this.indexSchema
Analyzer analyzer = sp.getType().getQueryAnalyzer(); TokenStream ts = analyzer.tokenStream(field, new StringReader(qstr));
if (schema.getFieldTypes().containsKey(suggestionAnalyzerFieldTypeName)) { FieldType fieldType = schema.getFieldTypes().get(suggestionAnalyzerFieldTypeName); suggestionAnalyzer = fieldType.getQueryAnalyzer();
String fieldTypeName = (String) initParams.get("queryAnalyzerFieldType"); FieldType fieldType = schema.getFieldTypes().get(fieldTypeName); Analyzer analyzer = fieldType == null ? new WhitespaceAnalyzer() : fieldType.getQueryAnalyzer();
FieldType fieldType = schema.getFieldTypes().get(fieldTypeName); Analyzer analyzer = fieldType == null ? new WhitespaceAnalyzer() : fieldType.getQueryAnalyzer();
analyzer = core.getSchema().getFieldType(field).getQueryAnalyzer(); analyzer = fieldType.getQueryAnalyzer();
"Unknown FieldType: '"+a+"' used in QueryElevationComponent" ); analyzer = ft.getQueryAnalyzer();
String queryValue = analysisRequest.getQuery(); if (queryValue != null && analysisRequest.isShowMatch()) { List<Token> tokens = analyzeValue(queryValue, fieldType.getQueryAnalyzer()); for (Token token : tokens) { termsToMatch.add(token.term()); AnalysisContext context = new AnalysisContext(fieldName, fieldType, fieldType.getQueryAnalyzer()); NamedList analyzedTokens = analyzeValue(analysisRequest.getQuery(), context); analyzeResults.add("query", analyzedTokens);
field.add("className", ft.getClass().getName()); field.add("indexAnalyzer", getAnalyzerInfo(ft.getAnalyzer())); field.add("queryAnalyzer", getAnalyzerInfo(ft.getQueryAnalyzer())); types.add( ft.getTypeName(), field );
if (request.getQuery() != null && request.isShowMatch()) { try { List<Token> tokens = analyzeValue(request.getQuery(), fieldType.getQueryAnalyzer()); for (Token token : tokens) { termsToMatch.add(token.term()); AnalysisContext analysisContext = new AnalysisContext(fieldType, fieldType.getQueryAnalyzer(), Collections.EMPTY_SET); NamedList<List<NamedList>> tokens = analyzeValue(request.getQuery(), analysisContext); fieldTokens.add("query", tokens);
Analyzer analyzer = req.getSchema().getField(indexedField).getType().getQueryAnalyzer(); try (TokenStream tokenStream = analyzer.tokenStream("", inputReader)) { Terms terms = searcher.getSlowAtomicReader().terms(indexedField);
Analyzer analyzer = req.getSchema().getField(indexedField).getType().getQueryAnalyzer(); try (TokenStream tokenStream = analyzer.tokenStream("", inputReader)) { Terms terms = searcher.getSlowAtomicReader().terms(indexedField);
if (schemaField != null) { xmlAnalyzer = schemaField.getType().getAnalyzer(); xmlQueryAnalyzer = schemaField.getType().getQueryAnalyzer(); if (xmlAnalyzer != null) { for (FieldRole role : new FieldRole [ ] { FieldRole.XML_TEXT, FieldRole.ELEMENT_TEXT, FieldRole.ATTRIBUTE_TEXT }) {
@Test public void testSirenFieldAnalyzer() throws Exception { final IndexSchema schema = h.getCore().getSchema(); final SchemaField ntriple = schema.getField(JSON_FIELD); final FieldType tmp = ntriple.getType(); assertTrue(tmp.getAnalyzer() instanceof TokenizerChain); final TokenizerChain ts = (TokenizerChain) tmp.getAnalyzer(); assertNotNull(ts.getTokenizerFactory()); assertTrue(ts.getTokenizerFactory() instanceof JsonTokenizerFactory); // 3 filters for index analyzer assertNotNull(ts.getTokenFilterFactories()); assertEquals(3, ts.getTokenFilterFactories().length); assertTrue(ts.getTokenFilterFactories()[0] instanceof DatatypeAnalyzerFilterFactory); assertTrue(ts.getTokenFilterFactories()[1] instanceof PositionAttributeFilterFactory); assertTrue(ts.getTokenFilterFactories()[2] instanceof SirenPayloadFilterFactory); // no query analyzer assertNull(tmp.getQueryAnalyzer()); }