Java源码示例:org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse.AnalyzeToken
示例1
/**
* 分词-无法分词则返回空集合
*
* @param analyzer
* @param str
* @return
*/
public static List<String> analyze(String analyzer, String str) {
AnalyzeResponse ar = null;
try {
AnalyzeRequest request = new AnalyzeRequest(str).analyzer(analyzer).index(
getCurrentValidIndex());
ar = ESClient.getClient().admin().indices().analyze(request).actionGet();
} catch (IndexMissingException e) {
if (!reLoad) {
synchronized (AnalyzeHelper.class) {
if (!reLoad) {
reLoad = true;
}
}
}
return analyze(analyzer, str);
}
if (ar == null || ar.getTokens() == null || ar.getTokens().size() < 1) {
return Lists.newArrayList();
}
List<String> analyzeTokens = Lists.newArrayList();
for (AnalyzeToken at : ar.getTokens()) {
analyzeTokens.add(at.getTerm());
}
return analyzeTokens;
}
示例2
@Override
public List<String> analyzeText(final String indexAliasName,
final String analyzer, final String[] tokenFilters,
final String text) {
final List<String> tokens = new ArrayList<String>();
final AnalyzeRequestBuilder analyzeRequestBuilder = searchClientService
.getClient().admin().indices().prepareAnalyze(text);
if (analyzer != null) {
analyzeRequestBuilder.setIndex(indexAliasName);
}
if (analyzer != null) {
analyzeRequestBuilder.setAnalyzer(analyzer);
}
if (tokenFilters != null) {
analyzeRequestBuilder.setTokenFilters(tokenFilters);
}
logger.debug(
"Analyze request is text: {}, analyzer: {}, tokenfilters: {}",
new Object[] { analyzeRequestBuilder.request().text(),
analyzeRequestBuilder.request().analyzer(),
analyzeRequestBuilder.request().tokenFilters() });
final AnalyzeResponse analyzeResponse = analyzeRequestBuilder.get();
try {
if (analyzeResponse != null) {
logger.debug(
"Analyze response is : {}",
analyzeResponse
.toXContent(jsonBuilder().startObject(),
ToXContent.EMPTY_PARAMS).prettyPrint()
.string());
}
} catch (final IOException e) {
logger.error("Error printing response.", e);
}
for (final AnalyzeToken analyzeToken : analyzeResponse.getTokens()) {
tokens.add(analyzeToken.getTerm());
}
return tokens;
}
示例3
@Override
public List<String> analyzeText(String indexAliasName, String analyzer, String[] tokenFilters, String text)
{
List<String> tokens = new ArrayList<String>();
AnalyzeRequestBuilder analyzeRequestBuilder = searchClientService.getClient().admin().indices().prepareAnalyze(text);
if(analyzer !=null)
{
analyzeRequestBuilder.setIndex(indexAliasName);
}
if(analyzer !=null)
{
analyzeRequestBuilder.setAnalyzer(analyzer);
}
if(tokenFilters !=null)
{
analyzeRequestBuilder.setTokenFilters(tokenFilters);
}
logger.debug("Analyze request is text: {}, analyzer: {}, tokenfilters: {}", new Object[]{analyzeRequestBuilder.request().text(),
analyzeRequestBuilder.request().analyzer(),
analyzeRequestBuilder.request().tokenFilters()});
AnalyzeResponse analyzeResponse = analyzeRequestBuilder.get();
try
{
if(analyzeResponse != null)
{
logger.debug("Analyze response is : {}", analyzeResponse.toXContent(jsonBuilder().startObject(), ToXContent.EMPTY_PARAMS).prettyPrint().string());
}
} catch (IOException e)
{
logger.error("Error printing response.", e);
}
for (AnalyzeToken analyzeToken : analyzeResponse.getTokens())
{
tokens.add(analyzeToken.getTerm());
}
return tokens;
}