On Tue, 10 Nov 2015 02:20:38 -0800, Chris Rimmer <[email protected]> wrote:
> Does anyone have an idea about this issue? It seems like a bug to me. I would look at the relevance trace information. There is a lot of bucketing and caps involved in score calculations, and it could just be that for your query and your data the 0.5 is getting lost in the noise. Add <search-option>relevance-trace</search-option> to your options, and you'll get additional information about how the scoring is calculated. //Mary > > On 30 October 2015 at 10:51, Chris Rimmer <[email protected]> > wrote: > > Hi, > > > We are running MarkLogic 8.0-3 and using the "additional query" > technique to > influence the ordering of search results (as discussed here > http://markmail.org/message/cmxhjxd77clicsbz). > While this is mostly working, we have found that when the "boosting > queries" are > specified with weights less than 0.5, they have no influence on the > score at all. > The relevant documentation > (https://docs.marklogic.com/guide/search-dev/relevance#id_22791) > says "To lower the score contribution, set the weight between 0 and > 1.0". There > is no suggestion that any value less than 0.5 is effectively zero. > > > As as an example, given an empty database with an element range index > set up on > the element "name" as follows: > > > import module namespace admin = "http://marklogic.com/xdmp/admin" at > "/MarkLogic/admin.xqy"; > > > let $dbid := xdmp:database("Documents") > > let $config := admin:get-configuration() > > let $rangespec := admin:database-range-element-index("string", "", > "name", "http://marklogic.com/collation/", > fn:false() ) > > let $new-config := admin:database-add-range-element-index($config, > $dbid, $rangespec) > > return admin:save-configuration($new-config) > > > Running the following with the weight set to 0.5 will show that the "Bob" > document is indeed scored higher than the others, while when this is set > to 0.49, > all the documents come out with the same weight: > > > import module namespace search = > "http://marklogic.com/appservices/search" at > "/MarkLogic/appservices/search/search.xqy"; > > > let $weight := 0.5 > > > let $_ := xdmp:document-insert("/alf", > <person><name>Alf</name><role>Blah</role></person>) > > let $_ := xdmp:document-insert("/bob", > <person><name>Bob</name><role>Blah</role></person>) > > let $_ := xdmp:document-insert("/cal", > <person><name>Cal</name><role>Blah</role></person>) > > > let $or-query := cts:or-query(( > > cts:and-query(()), > > cts:element-range-query(xs:QName("name"), "=", "Bob", > ("score-function=linear"), > $weight) > > )) > > > let $options := <options xmlns="http://marklogic.com/appservices/search"> > > <additional-query>{$or-query}</additional-query> > > </options> > > > let $search := search:search("Blah", $options) > > > return for $result in $search//search:result > > return $result/@uri || ": " || $result/@score > > > Any ideas about what is happening would be appreciated, > > > Thanks > > > Chris Rimmer > > > 67 Bricks -- Using Opera's revolutionary email client: http://www.opera.com/mail/ _______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
