本文整理汇总了Java中org.elasticsearch.index.analysis.TokenizerFactory.create方法的典型用法代码示例。如果您正苦于以下问题:Java TokenizerFactory.create方法的具体用法?Java TokenizerFactory.create怎么用?Java TokenizerFactory.create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.elasticsearch.index.analysis.TokenizerFactory
的用法示例。
在下文中一共展示了TokenizerFactory.create方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createStackedTokenStream
import org.elasticsearch.index.analysis.TokenizerFactory; //导入方法依赖的package包/类
private static TokenStream createStackedTokenStream(String source, CharFilterFactory[] charFilterFactories, TokenizerFactory tokenizerFactory, TokenFilterFactory[] tokenFilterFactories, int current) {
Reader reader = new FastStringReader(source);
for (CharFilterFactory charFilterFactory : charFilterFactories) {
reader = charFilterFactory.create(reader);
}
Tokenizer tokenizer = tokenizerFactory.create();
tokenizer.setReader(reader);
TokenStream tokenStream = tokenizer;
for (int i = 0; i < current; i++) {
tokenStream = tokenFilterFactories[i].create(tokenStream);
}
return tokenStream;
}
示例2: DynamicSynonymTokenFilterFactory
import org.elasticsearch.index.analysis.TokenizerFactory; //导入方法依赖的package包/类
public DynamicSynonymTokenFilterFactory(IndexSettings indexSettings, Environment env, AnalysisRegistry analysisRegistry,
String name, Settings settings) throws IOException {
//加载配置
super(indexSettings, name, settings);
this.indexName = indexSettings.getIndex().getName();
this.interval = settings.getAsInt("interval", 60);
this.ignoreCase = settings.getAsBoolean("ignore_case", false);
this.expand = settings.getAsBoolean("expand", true);
this.format = settings.get("format", "");
this.location = settings.get("synonyms_path");
logger.info("indexName:{} synonyms_path:{} interval:{} ignore_case:{} expand:{} format:{}",
indexName, location, interval, ignoreCase, expand, format);
//属性检查
if (this.location == null) {
throw new IllegalArgumentException(
"dynamic synonym requires `synonyms_path` to be configured");
}
String tokenizerName = settings.get("tokenizer", "whitespace");
AnalysisModule.AnalysisProvider<TokenizerFactory> tokenizerFactoryFactory =
analysisRegistry.getTokenizerProvider(tokenizerName, indexSettings);
if (tokenizerFactoryFactory == null) {
throw new IllegalArgumentException("failed to find tokenizer [" + tokenizerName + "] for synonym token filter");
}
final TokenizerFactory tokenizerFactory = tokenizerFactoryFactory.get(indexSettings, env, tokenizerName,
AnalysisRegistry.getSettingsFromIndexSettings(indexSettings, AnalysisRegistry.INDEX_ANALYSIS_TOKENIZER + "." + tokenizerName));
Analyzer analyzer = new Analyzer() {
@Override
protected TokenStreamComponents createComponents(String fieldName) {
Tokenizer tokenizer = tokenizerFactory == null ? new WhitespaceTokenizer() : tokenizerFactory.create();
TokenStream stream = ignoreCase ? new LowerCaseFilter(tokenizer) : tokenizer;
return new TokenStreamComponents(tokenizer, stream);
}
};
//根据location前缀初始化同义词更新策略
SynonymFile synonymFile;
if (location.startsWith("http://")) {
synonymFile = new RemoteSynonymFile(env, analyzer, expand, format, location);
} else {
synonymFile = new LocalSynonymFile(env, analyzer, expand, format, location);
}
synonymMap = synonymFile.reloadSynonymMap();
//加入监控队列,定时load
scheduledFutures.putIfAbsent(this.indexName, new CopyOnWriteArrayList<ScheduledFuture>());
scheduledFutures.get(this.indexName)
.add(monitorPool.scheduleAtFixedRate(new Monitor(synonymFile), interval, interval, TimeUnit.SECONDS));
}
开发者ID:hailin0,项目名称:elasticsearch-analysis-dynamic-synonym,代码行数:54,代码来源:DynamicSynonymTokenFilterFactory.java
示例3: SynonymTokenFilterFactory
import org.elasticsearch.index.analysis.TokenizerFactory; //导入方法依赖的package包/类
public SynonymTokenFilterFactory(final IndexSettings indexSettings, final Environment environment, final String name, final Settings settings,
final AnalysisRegistry analysisRegistry) throws IOException {
super(indexSettings, name, settings);
this.ignoreCase = settings.getAsBoolean("ignore_case", false);
final boolean expand = settings.getAsBoolean("expand", true);
final String tokenizerName = settings.get("tokenizer", "whitespace");
AnalysisModule.AnalysisProvider<TokenizerFactory> tokenizerFactoryFactory = null;
if (analysisRegistry != null) {
tokenizerFactoryFactory = analysisRegistry.getTokenizerProvider(tokenizerName, indexSettings);
if (tokenizerFactoryFactory == null) {
throw new IllegalArgumentException("failed to find tokenizer [" + tokenizerName + "] for synonym token filter");
}
}
final TokenizerFactory tokenizerFactory = tokenizerFactoryFactory == null ? null
: tokenizerFactoryFactory.get(indexSettings, environment, tokenizerName, AnalysisRegistry
.getSettingsFromIndexSettings(indexSettings, AnalysisRegistry.INDEX_ANALYSIS_TOKENIZER + "." + tokenizerName));
final Analyzer analyzer = new Analyzer() {
@Override
protected TokenStreamComponents createComponents(final String fieldName) {
final Tokenizer tokenizer = tokenizerFactory == null ? new WhitespaceTokenizer() : tokenizerFactory.create();
final TokenStream stream = ignoreCase ? new LowerCaseFilter(tokenizer) : tokenizer;
return new TokenStreamComponents(tokenizer, stream);
}
};
synonymLoader = new SynonymLoader(environment, settings, expand, analyzer);
if (synonymLoader.getSynonymMap() == null) {
if (settings.getAsList("synonyms", null) != null) {
logger.warn("synonyms values are empty.");
} else if (settings.get("synonyms_path") != null) {
logger.warn("synonyms_path[{}] is empty.", settings.get("synonyms_path"));
} else {
throw new IllegalArgumentException("synonym requires either `synonyms` or `synonyms_path` to be configured");
}
}
}