当前位置: 首页>>代码示例>>Java>>正文


Java CompletionSuggestionBuilder类代码示例

本文整理汇总了Java中org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder的典型用法代码示例。如果您正苦于以下问题:Java CompletionSuggestionBuilder类的具体用法?Java CompletionSuggestionBuilder怎么用?Java CompletionSuggestionBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CompletionSuggestionBuilder类属于org.elasticsearch.search.suggest.completion包,在下文中一共展示了CompletionSuggestionBuilder类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。