本文整理汇总了Java中org.elasticsearch.action.suggest.SuggestRequestBuilder类的典型用法代码示例。如果您正苦于以下问题:Java SuggestRequestBuilder类的具体用法?Java SuggestRequestBuilder怎么用?Java SuggestRequestBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SuggestRequestBuilder类属于org.elasticsearch.action.suggest包,在下文中一共展示了SuggestRequestBuilder类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getCompletionSuggest
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
/**
* 无奈es的版本太低了,无法在建议器中做过滤操作(笔者es版本1.1),在更高版本的es中可以通过Context Suggester做过滤
*
* @param indices
* @param suggestQuery
* @return
*/
@SuppressWarnings({ "unchecked" })
private static List<Map<String, Object>> getCompletionSuggest(String indices,
SuggestQuery suggestQuery) {
// 查询体
CompletionSuggestionFuzzyBuilder suggestionsBuilder = new CompletionSuggestionFuzzyBuilder(
suggestQuery.suggestName);
suggestionsBuilder.setFuzziness(Fuzziness.build(suggestQuery.getFuzziness()));
suggestionsBuilder.text(suggestQuery.getText());
suggestionsBuilder.field(suggestQuery.getField());
suggestionsBuilder.size(suggestQuery.getSize());
SuggestRequestBuilder suggestRequestBuilder = ESClient.getClient()
.prepareSuggest(indices.split(",")).addSuggestion(suggestionsBuilder);
SuggestResponse resp = suggestRequestBuilder.execute().actionGet();
// 查询结果
List<? extends Entry<? extends Option>> entries = (List<? extends Entry<? extends Option>>) resp
.getSuggest().getSuggestion(suggestQuery.suggestName).getEntries();
if (entries == null) {
return Lists.newArrayList();
}
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
for (Entry<? extends Option> e : entries) {
for (Option option : e) {
Map<String, Object> map_payload = option.getPayloadAsMap();
map_payload.put("NAME", option.getText().toString());
result.add(map_payload);
}
}
// 调试模式
if (Constants.isDebug) {
logger.info(suggestRequestBuilder.toString());
logger.info(suggestionsBuilder.toString());
logger.info(JsonUtil.toJson(result));
}
return result;
}
示例2: prepareSuggest
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
@Override
public SuggestRequestBuilder prepareSuggest(String... indices) {
return new SuggestRequestBuilder(this, SuggestAction.INSTANCE).setIndices(indices);
}
示例3: getAutoSuggestions
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
@Override
public List<AutoSuggestionEntry> getAutoSuggestions(ElasticSearchIndexConfig config, String queryString)
{
TermSuggestionBuilder suggesBuilder = SuggestBuilder.termSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
.field(SearchDocumentFieldName.KEYWORDS.getFieldName())
.analyzer(config.getAutoSuggestionAnalyzerName())
.size(20)
.text(queryString)
// .suggestMode("always")
// .stringDistance("ngram")
;
// CompletionSuggestionBuilder suggesBuilder = new CompletionSuggestionBuilder(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.KEYWORDS.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(20)
// .text(queryString)
//// .stringDistance("ngram")
// ;
// PhraseSuggestionBuilder suggesBuilder = SuggestBuilder.phraseSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.TITLE.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(10)
// .text(queryString)
// ;
SuggestRequestBuilder addSuggestion = searchClientService.getClient().prepareSuggest(config.getIndexAliasName())
.addSuggestion(suggesBuilder);
try
{
logger.debug("Auto Suggestion request is {}", suggesBuilder.toXContent(jsonBuilder().startObject(), null).prettyPrint().string());
} catch (IOException e)
{
//Do nothing
logger.error("Error in to string", e);
}
SuggestResponse suggestResponse = addSuggestion.get();
logger.debug("Auto Suggestion response is {}", suggestResponse);
List<AutoSuggestionEntry> suggestions = new ArrayList<AutoSuggestionEntry>();
if(suggestResponse !=null && suggestResponse.getSuggest() !=null && suggestResponse.getSuggest().getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode()) !=null)
{
for (org.elasticsearch.search.suggest.Suggest.Suggestion.Entry<? extends Option> suggestEntry : suggestResponse.getSuggest().getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode()).getEntries())
{
for (Option option : suggestEntry.getOptions())
{
int count = ((TermSuggestion.Entry.Option) option).getFreq();
AutoSuggestionEntry autoSuggestionEntry = new AutoSuggestionEntry(option.getText().string(), count);
suggestions.add(autoSuggestionEntry);
}
}
}
return suggestions;
}
示例4: getAutoSuggestions
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
@Override
public List<AutoSuggestionEntry> getAutoSuggestions(final ElasticSearchIndexConfig config, final String queryString)
{
final TermSuggestionBuilder suggesBuilder = SuggestBuilder.termSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
.field(SearchDocumentFieldName.KEYWORDS.getFieldName()).analyzer(config.getAutoSuggestionAnalyzerName()).size(20)
.text(queryString)
// .suggestMode("always")
// .stringDistance("ngram")
;
// CompletionSuggestionBuilder suggesBuilder = new CompletionSuggestionBuilder(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.KEYWORDS.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(20)
// .text(queryString)
// // .stringDistance("ngram")
// ;
// PhraseSuggestionBuilder suggesBuilder = SuggestBuilder.phraseSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.TITLE.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(10)
// .text(queryString)
// ;
final SuggestRequestBuilder addSuggestion = searchClientService.getClient().prepareSuggest(config.getIndexAliasName())
.addSuggestion(suggesBuilder);
try
{
logger.debug("Auto Suggestion request is {}", suggesBuilder.toXContent(jsonBuilder().startObject(), null).prettyPrint()
.string());
}
catch (final IOException e)
{
// Do nothing
logger.error("Error in to string", e);
}
final SuggestResponse suggestResponse = addSuggestion.get();
logger.debug("Auto Suggestion response is {}", suggestResponse);
final List<AutoSuggestionEntry> suggestions = new ArrayList<AutoSuggestionEntry>();
if (suggestResponse != null && suggestResponse.getSuggest() != null
&& suggestResponse.getSuggest().getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode()) != null)
{
for (final org.elasticsearch.search.suggest.Suggest.Suggestion.Entry<? extends Option> suggestEntry : suggestResponse
.getSuggest().getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode()).getEntries())
{
for (final Option option : suggestEntry.getOptions())
{
final int count = ((TermSuggestion.Entry.Option) option).getFreq();
final AutoSuggestionEntry autoSuggestionEntry = new AutoSuggestionEntry(option.getText().string(), count);
suggestions.add(autoSuggestionEntry);
}
}
}
return suggestions;
}
示例5: getAutoSuggestions
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
@Override
public List<AutoSuggestionEntry> getAutoSuggestions(
final ElasticSearchIndexConfig config, final String queryString) {
final TermSuggestionBuilder suggesBuilder = SuggestBuilder
.termSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
.field(SearchDocumentFieldName.KEYWORDS.getFieldName())
.analyzer(config.getAutoSuggestionAnalyzerName()).size(20)
.text(queryString)
// .suggestMode("always")
// .stringDistance("ngram")
;
// CompletionSuggestionBuilder suggesBuilder = new
// CompletionSuggestionBuilder(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.KEYWORDS.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(20)
// .text(queryString)
// // .stringDistance("ngram")
// ;
// PhraseSuggestionBuilder suggesBuilder =
// SuggestBuilder.phraseSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
// .field(SearchDocumentFieldName.TITLE.getFieldName())
// .analyzer(config.getAutoSuggestionAnalyzerName())
// .size(10)
// .text(queryString)
// ;
final SuggestRequestBuilder addSuggestion = searchClientService
.getClient().prepareSuggest(config.getIndexAliasName())
.addSuggestion(suggesBuilder);
try {
logger.debug("Auto Suggestion request is {}", suggesBuilder
.toXContent(jsonBuilder().startObject(), null)
.prettyPrint().string());
} catch (final IOException e) {
// Do nothing
logger.error("Error in to string", e);
}
final SuggestResponse suggestResponse = addSuggestion.get();
logger.debug("Auto Suggestion response is {}", suggestResponse);
final List<AutoSuggestionEntry> suggestions = new ArrayList<AutoSuggestionEntry>();
if (suggestResponse != null
&& suggestResponse.getSuggest() != null
&& suggestResponse.getSuggest().getSuggestion(
SearchFacetName.AUTO_SUGGESTION.getCode()) != null) {
for (final org.elasticsearch.search.suggest.Suggest.Suggestion.Entry<? extends Option> suggestEntry : suggestResponse
.getSuggest()
.getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode())
.getEntries()) {
for (final Option option : suggestEntry.getOptions()) {
final int count = ((TermSuggestion.Entry.Option) option)
.getFreq();
final AutoSuggestionEntry autoSuggestionEntry = new AutoSuggestionEntry(
option.getText().string(), count);
suggestions.add(autoSuggestionEntry);
}
}
}
return suggestions;
}
示例6: prepareSuggest
import org.elasticsearch.action.suggest.SuggestRequestBuilder; //导入依赖的package包/类
/**
* Suggestions matching a specific phrase.
*/
SuggestRequestBuilder prepareSuggest(String... indices);