本文整理汇总了Java中org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder类的典型用法代码示例。如果您正苦于以下问题:Java CompletionSuggestionBuilder类的具体用法?Java CompletionSuggestionBuilder怎么用?Java CompletionSuggestionBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CompletionSuggestionBuilder类属于org.elasticsearch.search.suggest.completion包,在下文中一共展示了CompletionSuggestionBuilder类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: testRegex
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testRegex() throws Exception {
final CompletionMappingBuilder mapping = new CompletionMappingBuilder();
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 1; i <= numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "sugg" + i + "estion")
.field("weight", i)
.endObject()
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).regex("sugg.*es");
assertSuggestions("foo", prefix, "sugg10estion", "sugg9estion", "sugg8estion", "sugg7estion", "sugg6estion");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:CompletionSuggestSearchIT.java
示例2: testSingleContextFiltering
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testSingleContextFiltering() throws Exception {
CategoryContextMapping contextMapping = ContextBuilder.category("cat").field("cat").build();
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<String, ContextMapping>(Collections.singletonMap("cat", contextMapping));
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.endObject()
.field("cat", "cat" + i % 2)
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg")
.contexts(Collections.singletonMap("cat", Collections.singletonList(CategoryQueryContext.builder().setCategory("cat0").build())));
assertSuggestions("foo", prefix, "suggestion8", "suggestion6", "suggestion4", "suggestion2", "suggestion0");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:26,代码来源:ContextCompletionSuggestSearchIT.java
示例3: testSingleContextMultipleContexts
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testSingleContextMultipleContexts() throws Exception {
CategoryContextMapping contextMapping = ContextBuilder.category("cat").field("cat").build();
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<String, ContextMapping>(Collections.singletonMap("cat", contextMapping));
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<String> contexts = Arrays.asList("type1", "type2", "type3", "type4");
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.endObject()
.field("cat", contexts)
.endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg");
assertSuggestions("foo", prefix, "suggestion9", "suggestion8", "suggestion7", "suggestion6", "suggestion5");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:26,代码来源:ContextCompletionSuggestSearchIT.java
示例4: testSimpleGeoPrefix
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testSimpleGeoPrefix() throws Exception {
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>();
map.put("geo", ContextBuilder.geo("geo").build());
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.startObject("contexts")
.field("geo", GeoHashUtils.stringEncode(1.2, 1.3))
.endObject()
.endObject().endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg");
assertSuggestions("foo", prefix, "suggestion9", "suggestion8", "suggestion7", "suggestion6", "suggestion5");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:25,代码来源:ContextCompletionSuggestSearchIT.java
示例5: suggest
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public List<String> suggest(String prefix) {
CompletionSuggestionBuilder suggestionBuilder = new CompletionSuggestionBuilder("name_suggest")
.prefix(prefix);
SearchResponse response = getConnection().getClient().prepareSearch(getIndex())
.setTypes(getType())
.suggest(new SuggestBuilder().addSuggestion("suggestion", suggestionBuilder))
.setSize(100)
.setFetchSource(true)
.setExplain(false)
.execute()
.actionGet();
return response.getSuggest().filter(CompletionSuggestion.class).stream()
.flatMap(s -> s.getOptions().stream())
.sorted(Comparator.comparingDouble(Suggest.Suggestion.Entry.Option::getScore))
.map(Suggest.Suggestion.Entry.Option::getText)
.map(Text::toString)
.collect(Collectors.toList());
}
开发者ID:tokenmill,项目名称:crawling-framework,代码行数:21,代码来源:EsNamedQueryOperations.java
示例6: getSuggestions
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
@Override
public List<String> getSuggestions(String partial) {
List<String> returnList = new ArrayList<>();
String suggestionName = "suggestion";
CompletionSuggestionBuilder completionSuggestionBuilder = new CompletionSuggestionBuilder(suggestionName);
SuggestResponse suggestResponse = client.prepareSuggest("wow").setSuggestText(partial).addSuggestion(completionSuggestionBuilder.field("name.suggest")).execute().actionGet();
Suggest suggest = suggestResponse.getSuggest();
Suggest.Suggestion suggestion = suggest.getSuggestion(suggestionName);
List<Suggest.Suggestion.Entry> list = suggestion.getEntries();
for(Suggest.Suggestion.Entry entry : list) {
List<Suggest.Suggestion.Entry.Option> options = entry.getOptions();
for(Suggest.Suggestion.Entry.Option option : options) {
returnList.add(option.getText().toString());
}
}
return returnList;
}
开发者ID:wendelfleming,项目名称:USC-LunchNLearn-ElasticSearch,代码行数:22,代码来源:SearchSuggestImpl.java
示例7: autocomplete
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
@Override
public List<UserActionCounter> autocomplete(String prefix,
String indexName) {
SearchResponse response = null;
try {
response = getSearchClient()
.prepareSearch(indexName)
.addSuggestion(
new CompletionSuggestionBuilder("").field("code")
.text(prefix).size(10)).execute()
.actionGet();
} catch (ElasticsearchException e) {
e.printStackTrace();
}
List<UserActionCounter> counters = new Vector<UserActionCounter>();
if (response != null) {
while (response.getSuggest().iterator().hasNext()) {
counters.add((UserActionCounter) response.getSuggest()
.iterator().next());
}
}
return counters;
}
开发者ID:cplutte,项目名称:bts,代码行数:24,代码来源:UserActionCounterDaoImpl.java
示例8: getSuggestions
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public List<String> getSuggestions(String field, String text, boolean checkRecordGroup) {
CompletionSuggestionBuilder builder = new CompletionSuggestionBuilder("suggestions")
.field(field)
.text(text)
.size(size);
if (checkRecordGroup)
builder.addCategory("recordGroupId", getAccessibleRecordGroups());
SuggestResponse response = suggestRequestBuilder.addSuggestion(builder).execute().actionGet();
List<String> suggestions = new ArrayList<String>();
if (response != null && response.getSuggest() != null && response.getSuggest().getSuggestion("suggestions") != null
&& response.getSuggest().getSuggestion("suggestions").getEntries() != null && response.getSuggest().getSuggestion("suggestions").getEntries().size() > 0) {
Iterator<? extends Suggest.Suggestion.Entry.Option> iterator = response.getSuggest().getSuggestion("suggestions").getEntries().get(0).getOptions().iterator();
while (iterator.hasNext()) {
suggestions.add(iterator.next().getText().toString());
}
}
return suggestions;
}
开发者ID:dainst,项目名称:gazetteer,代码行数:27,代码来源:ElasticSearchSuggestionQuery.java
示例9: registerSuggesters
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
private void registerSuggesters(List<SearchPlugin> plugins) {
registerSmoothingModels(namedWriteables);
registerSuggester(new SuggesterSpec<>("term", TermSuggestionBuilder::new, TermSuggestionBuilder::fromXContent));
registerSuggester(new SuggesterSpec<>("phrase", PhraseSuggestionBuilder::new, PhraseSuggestionBuilder::fromXContent));
registerSuggester(new SuggesterSpec<>("completion", CompletionSuggestionBuilder::new, CompletionSuggestionBuilder::fromXContent));
registerFromPlugin(plugins, SearchPlugin::getSuggesters, this::registerSuggester);
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:10,代码来源:SearchModule.java
示例10: testPrefix
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testPrefix() throws Exception {
final CompletionMappingBuilder mapping = new CompletionMappingBuilder();
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 1; i <= numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i)
.endObject()
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg");
assertSuggestions("foo", prefix, "suggestion10", "suggestion9", "suggestion8", "suggestion7", "suggestion6");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:CompletionSuggestSearchIT.java
示例11: testFuzzy
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testFuzzy() throws Exception {
final CompletionMappingBuilder mapping = new CompletionMappingBuilder();
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 1; i <= numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "sugxgestion" + i)
.field("weight", i)
.endObject()
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg", Fuzziness.ONE);
assertSuggestions("foo", prefix, "sugxgestion10", "sugxgestion9", "sugxgestion8", "sugxgestion7", "sugxgestion6");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:CompletionSuggestSearchIT.java
示例12: testEarlyTermination
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testEarlyTermination() throws Exception {
final CompletionMappingBuilder mapping = new CompletionMappingBuilder();
createIndexAndMapping(mapping);
int numDocs = atLeast(100);
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + (numDocs - i))
.field("weight", numDocs - i)
.endObject()
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
int size = randomIntBetween(3, 10);
String[] outputs = new String[size];
for (int i = 0; i < size; i++) {
outputs[i] = "suggestion" + (numDocs - i);
}
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sug").size(size);
assertSuggestions("foo", prefix, outputs);
CompletionSuggestionBuilder regex = SuggestBuilders.completionSuggestion(FIELD).regex("su[g|s]g").size(size);
assertSuggestions("foo", regex, outputs);
CompletionSuggestionBuilder fuzzyPrefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg", Fuzziness.ONE).size(size);
assertSuggestions("foo", fuzzyPrefix, outputs);
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:32,代码来源:CompletionSuggestSearchIT.java
示例13: testThatWeightCanBeAString
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testThatWeightCanBeAString() throws Exception {
createIndexAndMapping(completionMappingBuilder);
client().prepareIndex(INDEX, TYPE, "1").setSource(jsonBuilder()
.startObject().startObject(FIELD)
.startArray("input").value("testing").endArray()
.field("weight", "10")
.endObject().endObject()
).get();
refresh();
SearchResponse searchResponse = client().prepareSearch(INDEX).suggest(
new SuggestBuilder().addSuggestion("testSuggestions", new CompletionSuggestionBuilder(FIELD).text("test").size(10))
).execute().actionGet();
assertSuggestions(searchResponse, "testSuggestions", "testing");
Suggest.Suggestion.Entry.Option option = searchResponse.getSuggest().getSuggestion("testSuggestions").getEntries().get(0).getOptions().get(0);
assertThat(option, is(instanceOf(CompletionSuggestion.Entry.Option.class)));
CompletionSuggestion.Entry.Option prefixOption = (CompletionSuggestion.Entry.Option) option;
assertThat(prefixOption.getText().string(), equalTo("testing"));
assertThat((long) prefixOption.getScore(), equalTo(10L));
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:25,代码来源:CompletionSuggestSearchIT.java
示例14: testThatFuzzySuggesterIsUnicodeAware
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testThatFuzzySuggesterIsUnicodeAware() throws Exception {
createIndexAndMapping(completionMappingBuilder);
client().prepareIndex(INDEX, TYPE, "1").setSource(jsonBuilder()
.startObject().startObject(FIELD)
.startArray("input").value("ööööö").endArray()
.endObject().endObject()
).get();
refresh();
// suggestion with a character, which needs unicode awareness
org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder completionSuggestionBuilder =
SuggestBuilders.completionSuggestion(FIELD).prefix("öööи", FuzzyOptions.builder().setUnicodeAware(true).build()).size(10);
SearchResponse searchResponse = client().prepareSearch(INDEX).suggest(new SuggestBuilder().addSuggestion("foo", completionSuggestionBuilder)).execute().actionGet();
assertSuggestions(searchResponse, false, "foo", "ööööö");
// removing unicode awareness leads to no result
completionSuggestionBuilder = SuggestBuilders.completionSuggestion(FIELD).prefix("öööи", FuzzyOptions.builder().setUnicodeAware(false).build()).size(10);
searchResponse = client().prepareSearch(INDEX).suggest(new SuggestBuilder().addSuggestion("foo", completionSuggestionBuilder)).execute().actionGet();
assertSuggestions(searchResponse, false, "foo");
// increasing edit distance instead of unicode awareness works again, as this is only a single character
completionSuggestionBuilder = SuggestBuilders.completionSuggestion(FIELD).prefix("öööи", FuzzyOptions.builder().setUnicodeAware(false).setFuzziness(Fuzziness.TWO).build()).size(10);
searchResponse = client().prepareSearch(INDEX).suggest(new SuggestBuilder().addSuggestion("foo", completionSuggestionBuilder)).execute().actionGet();
assertSuggestions(searchResponse, false, "foo", "ööööö");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:29,代码来源:CompletionSuggestSearchIT.java
示例15: testContextPrefix
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testContextPrefix() throws Exception {
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>();
map.put("cat", ContextBuilder.category("cat").field("cat").build());
boolean addAnotherContext = randomBoolean();
if (addAnotherContext) {
map.put("type", ContextBuilder.category("type").field("type").build());
}
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.endObject()
.field("cat", "cat" + i % 2);
if (addAnotherContext) {
source.field("type", "type" + i % 3);
}
source.endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg");
assertSuggestions("foo", prefix, "suggestion9", "suggestion8", "suggestion7", "suggestion6", "suggestion5");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:ContextCompletionSuggestSearchIT.java
示例16: testContextRegex
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testContextRegex() throws Exception {
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>();
map.put("cat", ContextBuilder.category("cat").field("cat").build());
boolean addAnotherContext = randomBoolean();
if (addAnotherContext) {
map.put("type", ContextBuilder.category("type").field("type").build());
}
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "sugg" + i + "estion")
.field("weight", i + 1)
.endObject()
.field("cat", "cat" + i % 2);
if (addAnotherContext) {
source.field("type", "type" + i % 3);
}
source.endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).regex("sugg.*es");
assertSuggestions("foo", prefix, "sugg9estion", "sugg8estion", "sugg7estion", "sugg6estion", "sugg5estion");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:ContextCompletionSuggestSearchIT.java
示例17: testContextFuzzy
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testContextFuzzy() throws Exception {
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>();
map.put("cat", ContextBuilder.category("cat").field("cat").build());
boolean addAnotherContext = randomBoolean();
if (addAnotherContext) {
map.put("type", ContextBuilder.category("type").field("type").build());
}
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "sugxgestion" + i)
.field("weight", i + 1)
.endObject()
.field("cat", "cat" + i % 2);
if (addAnotherContext) {
source.field("type", "type" + i % 3);
}
source.endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg", Fuzziness.ONE);
assertSuggestions("foo", prefix, "sugxgestion9", "sugxgestion8", "sugxgestion7", "sugxgestion6", "sugxgestion5");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:ContextCompletionSuggestSearchIT.java
示例18: testContextFilteringWorksWithUTF8Categories
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testContextFilteringWorksWithUTF8Categories() throws Exception {
CategoryContextMapping contextMapping = ContextBuilder.category("cat").field("cat").build();
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>(Collections.singletonMap("cat", contextMapping));
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
IndexResponse indexResponse = client().prepareIndex(INDEX, TYPE, "1")
.setSource(jsonBuilder().startObject()
.startObject(FIELD)
.field("input", "suggestion")
.endObject()
.field("cat", "ctx\\u00e4")
.endObject())
.get();
assertThat(indexResponse.status(), equalTo(RestStatus.CREATED));
assertNoFailures(client().admin().indices().prepareRefresh(INDEX).get());
CompletionSuggestionBuilder contextSuggestQuery = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg")
.contexts(Collections.singletonMap("cat",
Collections.singletonList(CategoryQueryContext.builder().setCategory("ctx\\u00e4").build())));
assertSuggestions("foo", contextSuggestQuery, "suggestion");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:ContextCompletionSuggestSearchIT.java
示例19: testSingleContextBoosting
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testSingleContextBoosting() throws Exception {
CategoryContextMapping contextMapping = ContextBuilder.category("cat").field("cat").build();
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<String, ContextMapping>(Collections.singletonMap("cat", contextMapping));
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.endObject()
.field("cat", "cat" + i % 2)
.endObject()
));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg")
.contexts(Collections.singletonMap("cat",
Arrays.asList(CategoryQueryContext.builder().setCategory("cat0").setBoost(3).build(),
CategoryQueryContext.builder().setCategory("cat1").build()))
);
assertSuggestions("foo", prefix, "suggestion8", "suggestion6", "suggestion4", "suggestion9", "suggestion2");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:28,代码来源:ContextCompletionSuggestSearchIT.java
示例20: testMissingContextValue
import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; //导入依赖的package包/类
public void testMissingContextValue() throws Exception {
LinkedHashMap<String, ContextMapping> map = new LinkedHashMap<>();
map.put("cat", ContextBuilder.category("cat").field("cat").build());
map.put("type", ContextBuilder.category("type").field("type").build());
final CompletionMappingBuilder mapping = new CompletionMappingBuilder().context(map);
createIndexAndMapping(mapping);
int numDocs = 10;
List<IndexRequestBuilder> indexRequestBuilders = new ArrayList<>();
for (int i = 0; i < numDocs; i++) {
XContentBuilder source = jsonBuilder()
.startObject()
.startObject(FIELD)
.field("input", "suggestion" + i)
.field("weight", i + 1)
.endObject();
if (randomBoolean()) {
source.field("cat", "cat" + i % 2);
}
if (randomBoolean()) {
source.field("type", "type" + i % 4);
}
source.endObject();
indexRequestBuilders.add(client().prepareIndex(INDEX, TYPE, "" + i)
.setSource(source));
}
indexRandom(true, indexRequestBuilders);
CompletionSuggestionBuilder prefix = SuggestBuilders.completionSuggestion(FIELD).prefix("sugg");
assertSuggestions("foo", prefix, "suggestion9", "suggestion8", "suggestion7", "suggestion6", "suggestion5");
}
开发者ID:justor,项目名称:elasticsearch_my,代码行数:30,代码来源:ContextCompletionSuggestSearchIT.java
注:本文中的org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论