Hey Dan!

Thanks for the code snippet, it's actually helped me narrow down my problem
considerably. I'm getting the error;

field 'suggest' is not a completion suggest field.

To my knowledge, you define it as a completion suggest field with the type
in the mapping.

.field("suggest").startObject().field("type", "completion").endObject()

Thanks!



On Fri, Apr 11, 2014 at 1:11 AM, Dan Tuffery <[email protected]> wrote:

> I did a quick test, this works:
>
> *Create mapping*
>
> curl -XPUT 'http://localhost:9200/example/test/_mapping' -d
> '{
>   "test": {
>     "properties": {
>       "my_suggest": {
>         "type": "completion"
>       }
>     }
>   }
> }'
>
> *Index value*
>
> curl -XPUT 'http://localhost:9200/example/test/1/' -d
> '{
>   "my_suggest": "FooFighters"
> }'
>
> *Java API code*
>
> CompletionSuggestionBuilder compBuilder = new
> CompletionSuggestionBuilder("my_suggest");
>     compBuilder.text("Foo");
>     compBuilder.field("my_suggest");
>
> SuggestRequestBuilder suggestRequestBuilder = client
>     .prepareSuggest("example").addSuggestion(compBuilder);
>
> SuggestResponse suggestResponse =
> suggestRequestBuilder.execute().actionGet();
> CompletionSuggestion compSuggestion =
> suggestResponse.getSuggest().getSuggestion("my_suggest");
>
> List<CompletionSuggestion.Entry> entryList = compSuggestion.getEntries();
> if (entryList != null) {
>     CompletionSuggestion.Entry entry = entryList.get(0);
>     List<CompletionSuggestion.Entry.Option> options = entry.getOptions();
>     if (options != null) {
>         CompletionSuggestion.Entry.Option option = options.get(0);
>         //the value of toReturn is 'FooFighters'
> String toReturn = option.getText().string()
> }
>
> Dan
>
>
> On Thursday, April 10, 2014 2:50:05 PM UTC+1, Bill Wortinger wrote:
>
>> Hello Dan, thanks again for all the help but I can't seem to get anything
>> to return. Here is my full code, there has to be something I'm missing.
>> Maybe in the indexing, the mapping?
>>
>> Mapping:
>> putMappingResponse = new PutMappingRequestBuilder(newClient
>> .admin().indices())
>> .setIndices(INDEX_NAME)
>>  .setType(INDEX_TYPE)
>> .setSource(jsonBuilder().startObject("suggest")
>> .field("type", "completion")
>>  .endObject().execute().actionGet());
>>
>> Method:
>> public String searchSuggestions(String suggestion) {
>> // Creates suggestions based on Document Titles.
>>  String toReturn = "";
>>
>> Client localClient = getElasticSearchClient();
>>
>>  CompletionSuggestionBuilder compBuilder = new
>> CompletionSuggestionBuilder("completion");
>> compBuilder.text(suggestion);
>>  compBuilder.field("suggest");
>>
>> SuggestRequestBuilder suggestRequestBuilder = localClient
>>  .prepareSuggest(INDEX_NAME).addSuggestion(compBuilder);
>>
>> SuggestResponse suggestResponse = suggestRequestBuilder.execute(
>> ).actionGet();
>>  CompletionSuggestion compSuggestion = suggestResponse.getSuggest().
>> getSuggestion("completion");
>>
>> List<CompletionSuggestion.Entry> entryList = compSuggestion.getEntries();
>> if (entryList != null) {
>>  CompletionSuggestion.Entry entry = entryList.get(0);
>> List<CompletionSuggestion.Entry.Option> options = entry.getOptions();
>>  if (options != null) {
>> CompletionSuggestion.Entry.Option option = options.get(0);
>> toReturn = option.getText().string();
>>  }
>> }
>> return toReturn;
>> }
>>
>> Index:
>> response = localClient.prepareIndex(INDEX_NAME, INDEX_TYPE)
>> .setSource(jsonBuilder().startObject("suggest").field("
>> input","FooFighters").endObject()).execute().actionGet();
>>
>> Thanks for all the help, I'm basically shooting in the dark hoping
>> somebody with more experience can spot the issue.
>>
>>
>>
>>
>>
>> On Wed, Apr 9, 2014 at 3:56 AM, Dan Tuffery <[email protected]> wrote:
>>
>>> This looks wrong,
>>>
>>> *Suggest.Suggestion.Entry.Option option2 =
>>> suggestResponse.getSuggest().getSuggestion("completion").getEntries().get(0).getOptions().get(0);*
>>>
>>> it should be:
>>>
>>> *Suggest.Suggestion.Entry.Option option2 = *
>>> *suggestResponse.getSuggest().getSuggestion("suggest").getEntries().get(0).getOptions().get(0);*
>>>
>>> Where *getSuggestion* is getting the field name you supplied in the
>>> request.
>>>
>>> Dan
>>>
>>>
>>> So it looks like your query is returning zero results. Can you see
>>> values indexed for the field 'at'
>>>
>>>
>>> On Tuesday, April 8, 2014 4:07:57 PM UTC+1, Bill Wortinger wrote:
>>>
>>>> Great resource! Thank you,
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *CompletionSuggestionBuilder compBuilder = new
>>>> CompletionSuggestionBuilder("completion");
>>>> compBuilder.text(suggestion);        compBuilder.field("suggest");
>>>> SuggestRequestBuilder suggestRequestBuilder =
>>>> localClient.prepareSuggest(INDEX_NAME)
>>>> .addSuggestion(compBuilder);                SuggestResponse suggestResponse
>>>> = suggestRequestBuilder.execute().actionGet();*
>>>>
>>>> When executing
>>>>
>>>>
>>>> *Suggest.Suggestion.Entry.Option option2 =
>>>> suggestResponse.getSuggest().getSuggestion("completion").getEntries().get(0).getOptions().get(0);*
>>>> A null is returned.
>>>>
>>>> Below is my index.
>>>>
>>>> *.startObject("suggest").field("type", "completion").endObject()*
>>>>
>>>> Thanks again!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Apr 8, 2014 at 9:14 AM, Dan <[email protected]> wrote:
>>>>
>>>>> What is the issue you're seeing? Have a look at the examples in the
>>>>> tests:
>>>>>
>>>>> https://github.com/elasticsearch/elasticsearch/blob/master/
>>>>> src/test/java/org/elasticsearch/search/suggest/CompletionSug
>>>>> gestSearchTests.java
>>>>>
>>>>> Dan
>>>>>
>>>>>
>>>>> On Tuesday, April 8, 2014 1:43:29 PM UTC+1, Bill Wortinger wrote:
>>>>>>
>>>>>> Thanks for the heads up Alex, I'll remove the .setTypes().
>>>>>>
>>>>>> Dan, this is what I have so far;
>>>>>>
>>>>>> CompletionSuggestionBuilder compBuilder = new
>>>>>> CompletionSuggestionBuilder("complete");
>>>>>> compBuilder.text('n");
>>>>>> compBuilder.field("suggest");
>>>>>> SuggestRequestBuilder suggestRequestBuilder =
>>>>>> client.prepareSuggest(INDEX_NAME);
>>>>>> suggestRequestBuilder.addSuggestion(compBuilder);
>>>>>>  SuggestResponse suggestResponse = suggestRequestBuilder.execute(
>>>>>> ).actionGet();
>>>>>>
>>>>>> CompletionSuggestion compSuggestion = suggestResponse.getSuggest().g
>>>>>> etSuggestion("complete");
>>>>>>
>>>>>> List<CompletionSuggestion.Entry> entryList =
>>>>>> compSuggestion.getEntries();
>>>>>>         if(entryList != null) {
>>>>>>         CompletionSuggestion.Entry entry = entryList.get(0);
>>>>>>         List<CompletionSuggestion.Entry.Option> options
>>>>>> =entry.getOptions();
>>>>>>                if(options != null)  {
>>>>>>                 CompletionSuggestion.Entry.Option option =
>>>>>> options.get(0);
>>>>>>                    toReturn = option.getText().string();
>>>>>>                }
>>>>>>         }
>>>>>>         return toReturn;
>>>>>>
>>>>>> I've made progress! But now it's falling apart when I try parsing the
>>>>>> entries from the suggestReponse. So, am I doing this correctly? Missing
>>>>>> something?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>>
>>>>>>>
>>>>>> On Monday, April 7, 2014 6:26:37 AM UTC-4, Dan wrote:
>>>>>>>
>>>>>>> Use the SuggestRequestBuilder, i.e.
>>>>>>>
>>>>>>> CompletionSuggestionBuilder compBuilder = new
>>>>>>> CompletionSuggestionBuilder("complete");
>>>>>>> compBuilder.text("n");
>>>>>>> compBuilder.field("suggest");
>>>>>>>
>>>>>>> SuggestRequestBuilder suggestRequestBuilder =
>>>>>>> client.prepareSuggest(INDEX_NAME);
>>>>>>> suggestRequestBuilder.addSuggestion(compBuilder);
>>>>>>> SuggestResponse suggestResponse = suggestRequestBuilder.execute(
>>>>>>> ).actionGet();
>>>>>>>
>>>>>>> Dan
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Apr 7, 2014 at 8:49 AM, Alexander Reelsen <[email protected]
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Hey,
>>>>>>>>
>>>>>>>> looks ok. Minor note: Types are simply ignored for suggestions.
>>>>>>>> What are you getting back? Nothing?
>>>>>>>> Can you create a fully working gist, including creation of the
>>>>>>>> mapping and indexing? Then debugging and finding your possible cause 
>>>>>>>> would
>>>>>>>> be a lot easier.
>>>>>>>>
>>>>>>>>
>>>>>>>> --Alex
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Apr 4, 2014 at 4:02 PM, Bill Wortinger 
>>>>>>>> <[email protected]>wrote:
>>>>>>>>
>>>>>>>>> I have my indices created, and mapping type for my 'suggest' field
>>>>>>>>> set to completion. I can't figure out how to configure the query for
>>>>>>>>> completion suggestions in elastic-search (Java API).
>>>>>>>>>
>>>>>>>>> I'm trying to use this Query to base my implementation off of. 
>>>>>>>>> "song-suggest" : { "text" : "n", "completion" : { "field" : "suggest" 
>>>>>>>>> } } Here's
>>>>>>>>> what I have so far,
>>>>>>>>>
>>>>>>>>>         CompletionSuggestionBuilder compBuilder = new 
>>>>>>>>> CompletionSuggestionBuilder("complete");
>>>>>>>>>         compBuilder.text("n..");
>>>>>>>>>         compBuilder.field("suggest");
>>>>>>>>>
>>>>>>>>>         SearchResponse searchResponse = 
>>>>>>>>> localClient.prepareSearch(INDEX_NAME)
>>>>>>>>>         .setTypes("completion")
>>>>>>>>>         .setQuery(QueryBuilders.matchAllQuery())
>>>>>>>>>         .addSuggestion(compBuilder)
>>>>>>>>>         .execute().actionGet();
>>>>>>>>>
>>>>>>>>>          CompletionSuggestion compSuggestion = 
>>>>>>>>> searchResponse.getSuggest().getSuggestion("complete");
>>>>>>>>>
>>>>>>>>>  Am I missing something, doing something wrong? Thanks!
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "elasticsearch" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/elasticsearch/06792c37-646
>>>>>>>>> c-4b59-bdb3-f23cc51bd134%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/06792c37-646c-4b59-bdb3-f23cc51bd134%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "elasticsearch" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to [email protected].
>>>>>>>> To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/elasticsearch/CAGCwEM9D76G
>>>>>>>> mrXqdnBy%3DkstCN4NDtfkS3X%3DyXd0uMdTVpSUBvg%40mail.gmail.com<https://groups.google.com/d/msgid/elasticsearch/CAGCwEM9D76GmrXqdnBy%3DkstCN4NDtfkS3X%3DyXd0uMdTVpSUBvg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "elasticsearch" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/elasticsearch/06nbxJnYfDo/unsubscribe.
>>>>>  To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/elasticsearch/f6e28fc8-cef5-4f13-8dce-04e0bcfc5404%40goo
>>>>> glegroups.com<https://groups.google.com/d/msgid/elasticsearch/f6e28fc8-cef5-4f13-8dce-04e0bcfc5404%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "elasticsearch" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>> topic/elasticsearch/06nbxJnYfDo/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/elasticsearch/6fa70b40-0fb7-4735-851d-bf8bc872fd38%
>>> 40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/6fa70b40-0fb7-4735-851d-bf8bc872fd38%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "elasticsearch" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/elasticsearch/06nbxJnYfDo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/3e73ca3a-9f27-417a-b097-846dfa4730d0%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/3e73ca3a-9f27-417a-b097-846dfa4730d0%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAJ%3D6wEdt%2B-X7YL1q799rvE%2BdH%3DmZozyXyLEhpq1aANfBsTb-Ow%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to