maybe this is interesting in your situation?

http://www.elasticsearch.org/blog/you-complete-me/

simon

On Thursday, January 23, 2014 4:15:05 PM UTC+1, Nikolay Chankov wrote:
>
> Well, it's really strange, that position is not encountered, since with 
> many results and especially data with lot of similarities (user names) 
> doesn't get sorted also by string position somehow.
>
> Anyone to share how do they make autocomplete? Feeling really stupid :(
>
> On Thursday, January 23, 2014 10:56:30 AM UTC, Nikolay Chankov wrote:
>>
>> Just checked the Facebook suggestion style and I would imagine something 
>> like, this, When you start typing terms which start with the phrase/word 
>> are in the top, while the terms which just contain the phrase/word, are at 
>> the bottom. But I could be wrong that that the order is this way :)
>>
>>
>> On Thursday, January 23, 2014 10:08:25 AM UTC, Nikolay Chankov wrote:
>>>
>>> Hi Johan,
>>>
>>> I've already saw this suggestion, but it's not really useful for me, 
>>> since in the index there are various document with different types. For 
>>> example, I have users, but also I have venues and events, last two had only 
>>> name, while user could have two names.
>>>
>>> In general I am trying to build an autosuggest feature on a site and 
>>> when you start typing 'Joh' the suggestions will be first users starting 
>>> with 'Joh', but there could be some venues starting with 'Joh' string as 
>>> well, so as much you type, the more concrete results you will have, but I 
>>> am also reading about suggesters, and probably I will implement a solution 
>>> which will be more like Google autosuggest rather displaying the first few 
>>> results of the search itself.
>>>
>>> I've seen also text scoring in 
>>> scripts<http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/modules-advanced-scripting.html>
>>>  which 
>>> could be a solution as well.
>>>
>>> I just wanted to ask if there is something like common way of score the 
>>> position of the term in a field, but obviously there is no such way. :)
>>>
>>> Thanks for the help
>>>
>>>
>>>
>>> On Thursday, January 23, 2014 9:36:47 AM UTC, Johan Rask wrote:
>>>>
>>>> Hi again,
>>>>
>>>> Can you explain more what you are trying to accomplish?
>>>>
>>>> I "think" that the only way you can solve this is to split into 
>>>> multiple fields and
>>>> then boost individual fields in your query. Not sure if thats possible 
>>>> for you.
>>>>
>>>> /Johan
>>>>
>>>> Den torsdagen den 23:e januari 2014 kl. 09:44:02 UTC+1 skrev Nikolay 
>>>> Chankov:
>>>>>
>>>>> Hi Johan,
>>>>>
>>>>> thanks for the reply
>>>>>
>>>>> I would agree that it's ok, if I am searching for common term, like 
>>>>> 'venue', 'club' or 'bar', but when it comes to User names, it make sense 
>>>>> to 
>>>>> score the position in the field too, because when you search in field 
>>>>> user.name, and type 'Jo' you would expect first to see users with 
>>>>> first name Joe, Johan, John, rather than having users with Jo in the 
>>>>> family.
>>>>>
>>>>> And especially when you search for user name field you don't expect to 
>>>>> have more occurrence of the name  in that field.
>>>>>
>>>>>
>>>>>
>>>>> On Wednesday, January 22, 2014 9:30:19 PM UTC, Johan Rask wrote:
>>>>>>
>>>>>> Lucene will calculate you score based on a scoring formula. I am 
>>>>>> pretty sure that the location of the word is not part of this formula 
>>>>>> but 
>>>>>> rather how common the
>>>>>> word is in your sentence. I.e multiple occurences of 'venue' should 
>>>>>> increase scoring and adding other words to your sentence should decrease 
>>>>>> the scoring.
>>>>>>
>>>>>> Hope this helps, I am pretty sure there is detailed info about this 
>>>>>> in the lucene docs. 
>>>>>>
>>>>>> Kind regards /Johan
>>>>>>
>>>>>> Den onsdagen den 22:e januari 2014 kl. 13:10:00 UTC+1 skrev Nikolay 
>>>>>> Chankov:
>>>>>>>
>>>>>>> I am playing with elasticsearch so far, and i noticed something:
>>>>>>>
>>>>>>> If I search for a word in a string, the _score is equal no matter 
>>>>>>> where is placed the word. Here I have prepared a test case:
>>>>>>>
>>>>>>> curl -XDELETE 'http://localhost:9200/test_search'
>>>>>>> curl -XPUT 'http://localhost:9200/test_search/' -d '
>>>>>>> {
>>>>>>>     "mappings" : {
>>>>>>>         "test_record" : {
>>>>>>>             "properties" : {
>>>>>>>                 "name" : { 
>>>>>>>                     "type" : "string"
>>>>>>>                 }
>>>>>>>             }
>>>>>>>         }
>>>>>>>     }
>>>>>>> }'
>>>>>>>
>>>>>>> curl -XPUT 'http://localhost:9200/test_search/test_record/1' -d '{
>>>>>>>     "name" : "is the name Venue of that one"
>>>>>>> }'
>>>>>>>
>>>>>>> curl -XPUT 'http://localhost:9200/test_search/test_record/2' -d '{
>>>>>>>     "name" : "is the name of that one Venue"
>>>>>>> }'
>>>>>>>
>>>>>>> curl -XPUT 'http://localhost:9200/test_search/test_record/3' -d '{
>>>>>>>     "name" : "Venue is the name of that one"
>>>>>>> }'
>>>>>>>
>>>>>>> curl -XGET 'http://localhost:9200/test_search/_search' -d '{
>>>>>>>     "query": {
>>>>>>>         "bool": {
>>>>>>>             "must": [ ],
>>>>>>>             "must_not": [ ],
>>>>>>>             "should": [
>>>>>>>                 {
>>>>>>>                     "query_string" : {
>>>>>>>                         "default_field": "_all",
>>>>>>>                         "query" : "venue"
>>>>>>>                     }
>>>>>>>                 }
>>>>>>>             ]
>>>>>>>         }
>>>>>>>     },
>>>>>>>     "from": 0,
>>>>>>>     "size": 10
>>>>>>> }'
>>>>>>>
>>>>>>> The question is: how to have different score based on the position 
>>>>>>> of the word 'venue' in the test. When I search I would expect results 
>>>>>>> to be 
>>>>>>> ordered 3,1,2 while now they are as they are inserted ,1,2,3.
>>>>>>>
>>>>>>> Any hint will be much appreciated
>>>>>>>
>>>>>>

-- 
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/8cb8fd26-cc4d-4f26-a7cb-b7c6ef5048dc%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to