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/7d7a5a5d-cc7f-4035-b5fb-a558cd71559f%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
