I think it makes more sense to use string fields for term boosting. The "explain" display for a boosted numeric looks weird indeed.
For numeric boosting, maybe function score query works better and is a more convenient approach. Jörg On Mon, Aug 4, 2014 at 2:37 PM, Bernd Fehling <[email protected]> wrote: > Actually I can't follow you. > > My query should be: > "must_match(fieldname "text", value "einzelhandel", boost "200") AND > should_match(fieldname "oa", value "1", boost "400")" > > Where is my typo? > > Ahh you mean the value of "oa" with "1" is a string whereas the mapping is > integer? > > > > > Am Montag, 4. August 2014 13:44:22 UTC+2 schrieb Jörg Prante: >> >> Maybe a typo? >> >> For this example >> >> >> PUT /test/test/1 >> { >> "name" : "einzelhandel", >> "type" : "oa" >> } >> PUT /test/test/2 >> { >> "name" : "grosshandel", >> "type" : "oa" >> } >> PUT /test/test/3 >> { >> "name" : "grosshandel", >> "type" : "closed" >> } >> >> >> POST /test/test/_search >> { >> "explain": true, >> "query": { >> "bool": { >> "must": { >> "match": { >> "name": { >> "query": "einzelhandel", >> "boost": 200 >> } >> } >> }, >> "should": { >> "match": { >> "type": { >> "query" : "oa", >> "boost": 400 >> } >> } >> } >> } >> } >> } >> >> I get a reasonable explain: >> >> >> { >> "took": 4, >> "timed_out": false, >> "_shards": { >> "total": 5, >> "successful": 5, >> "failed": 0 >> }, >> "hits": { >> "total": 1, >> "max_score": 0.41168627, >> "hits": [ >> { >> "_shard": 2, >> "_node": "RuosUkeaQKqKYq_WWi_brA", >> "_index": "test", >> "_type": "test", >> "_id": "1", >> "_score": 0.41168627, >> "_source": { >> "name": "einzelhandel", >> "type": "oa" >> }, >> "_explanation": { >> "value": 0.41168627, >> "description": "sum of:", >> "details": [ >> { >> "value": 0.13722876, >> "description": "weight(name:einzelhandel^200.0 in >> 0) [PerFieldSimilarity], result of:", >> "details": [ >> { >> "value": 0.13722876, >> "description": "score(doc=0,freq=1.0 = >> termFreq=1.0\n), product of:", >> "details": [ >> { >> "value": 0.4472136, >> "description": "queryWeight, product >> of:", >> "details": [ >> { >> "value": 200, >> "description": "boost" >> }, >> { >> "value": 0.30685282, >> "description": "idf(docFreq=1, >> maxDocs=1)" >> }, >> { >> "value": 0.0072871028, >> "description": "queryNorm" >> } >> ] >> }, >> { >> "value": 0.30685282, >> "description": "fieldWeight in 0, >> product of:", >> "details": [ >> { >> "value": 1, >> "description": "tf(freq=1.0), with >> freq of:", >> "details": [ >> { >> "value": 1, >> "description": "termFreq=1.0" >> } >> ] >> }, >> { >> "value": 0.30685282, >> "description": "idf(docFreq=1, >> maxDocs=1)" >> }, >> { >> "value": 1, >> "description": "fieldNorm(doc=0)" >> } >> ] >> } >> ] >> } >> ] >> }, >> { >> "value": 0.2744575, >> "description": "weight(type:oa^400.0 in 0) >> [PerFieldSimilarity], result of:", >> "details": [ >> { >> "value": 0.2744575, >> "description": "score(doc=0,freq=1.0 = >> termFreq=1.0\n), product of:", >> "details": [ >> { >> "value": 0.8944272, >> "description": "queryWeight, product >> of:", >> "details": [ >> { >> "value": 400, >> "description": "boost" >> }, >> { >> "value": 0.30685282, >> "description": "idf(docFreq=1, >> maxDocs=1)" >> }, >> { >> "value": 0.0072871028, >> "description": "queryNorm" >> } >> ] >> }, >> { >> "value": 0.30685282, >> "description": "fieldWeight in 0, >> product of:", >> "details": [ >> { >> "value": 1, >> "description": "tf(freq=1.0), with >> freq of:", >> "details": [ >> { >> "value": 1, >> "description": "termFreq=1.0" >> } >> ] >> }, >> { >> "value": 0.30685282, >> "description": "idf(docFreq=1, >> maxDocs=1)" >> }, >> { >> "value": 1, >> "description": "fieldNorm(doc=0)" >> } >> ] >> } >> ] >> } >> ] >> } >> ] >> } >> } >> ] >> } >> } >> >> Jörg >> >> >> >> >> On Mon, Aug 4, 2014 at 1:28 PM, Bernd Fehling <[email protected]> >> wrote: >> >>> >>> While trying to get familiar with ES I wrote some plugins. >>> But the tests are showing differences compared to Solr. >>> But where is the bug, in ES or in Solr? >>> >>> >>> In ES my query is: >>> { >>> "fields": [ >>> "score", >>> "dctitle", >>> "dcoa" >>> ], >>> "explain": true, >>> "query": { >>> "bool": { >>> "must": { >>> "match": { >>> "text": { >>> "query": "einzelhandel", >>> "boost": 200 >>> } >>> } >>> }, >>> "should": { >>> "match": { >>> "oa": { >>> "query": "1", >>> "boost": 400 >>> } >>> } >>> } >>> } >>> } >>> } >>> >>> And the explain result is: >>> >>> - _explanation: { >>> - value: 1.4639825 >>> - description: sum of: >>> - details: [ >>> - { >>> - value: 1.2748994 >>> - description: weight(text:einzelhandel^200.0 in 188102) [ >>> PerFieldSimilarity], result of: >>> - details: [ >>> - { >>> - value: 1.2748994 >>> - description: score(doc=188102,freq=1.0 = termFreq= >>> 1.0 ), product of: >>> - details: [ >>> - { >>> - value: 0.98196113 >>> - description: queryWeight, product of: >>> - details: [ >>> - { >>> - value: 200 >>> - description: boost >>> } >>> - { >>> - value: 10.386557 >>> - description: idf(docFreq=50, maxDocs= >>> 608275) >>> } >>> - { >>> - value: 0.00047270773 >>> - description: queryNorm >>> } >>> ] >>> } >>> - { >>> - value: 1.2983196 >>> - description: fieldWeight in 188102, product of >>> : >>> - details: [ >>> - { >>> - value: 1 >>> - description: tf(freq=1.0), with freq of: >>> - details: [ >>> - { >>> - value: 1 >>> - description: termFreq=1.0 >>> } >>> ] >>> } >>> - { >>> - value: 10.386557 >>> - description: idf(docFreq=50, maxDocs= >>> 608275) >>> } >>> - { >>> - value: 0.125 >>> - description: fieldNorm(doc=188102) >>> } >>> ] >>> } >>> ] >>> } >>> ] >>> } >>> - { >>> - value: 0.1890831 >>> - description: ConstantScore(oa:[1 TO 1]^400.0)^400.0, >>> product of: >>> - details: [ >>> - { >>> - value: 400 >>> - description: boost >>> } >>> - { >>> - value: 0.00047270773 >>> - description: queryNorm >>> } >>> ] >>> } >>> ] >>> } >>> >>> } >>> >>> The top part looks good to me, but why is ES building from >>> "should(oa:1^400)" something >>> like "ConstantScore(oa:[1 TO 1]^400.0)^400.0" which looks like a range >>> query with double boost of 400? >>> >>> Is that right? >>> >>> Regards >>> >>> Bernd >>> >>> -- >>> 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/45f94ead-b37c-4c13-9bd2-8833cd8387da% >>> 40googlegroups.com >>> <https://groups.google.com/d/msgid/elasticsearch/45f94ead-b37c-4c13-9bd2-8833cd8387da%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/6c9242d7-e865-420d-b520-cad2dd4597fd%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/6c9242d7-e865-420d-b520-cad2dd4597fd%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/CAKdsXoHknWKXyU3SssommN0sJ5j16V6shzW9-j--_5RHKVdSvQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
