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 elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/2f1ea0ed-a0f8-4b38-b483-3b223d4a2899%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.