Mary,

Thanks for your answer. I have a couple more questions in response:

- Do you have any indication what the values in that table should be?
- Are the upper/lower bounds different in practice as well as the
granularity?
- How can we change the range query caching behaviour? I can't find any
documentation of that.

Thanks

Chris Rimmer

67 Bricks


> There are some interactions with range query caching (true by default) and
>
> some internal limits, and some fixes we made that made the information in
> the tables incorrect. There are some further fixes/changes coming in 8.0-4
>
> in this area., too.  In the meantime you can adjust your slope factor to
> get the effect you want.
>
> //Mary
>
> On Fri, 30 Oct 2015 06:13:30 -0700, Chris Rimmer
> <chris.rimmer at 67bricks.com> wrote:
>
> > Hi,
> >
> > As mentioned in my previous mail, 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
> ).
> > We have found something else that is not working as we would expect with
> > range queries, this time it is slope factor with date values. The
> > documentation here:
> > https://docs.marklogic.com/guide/search-dev/relevance#id_32386 suggests
> > that with the default slope factor of 1.0 the granularity of date values
> > should be roughly 1.5 days. We understand that to mean that with dates
> > which are 2 or more days apart, they should fall into different buckets
> > and
> > so contribute different amounts to the search score. But we are not
> > seeing
> > that.
> >
> > As as an example, given an empty database with an element range index set
> > up on the element "birth" 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("date", "",
> > "birth",
> > "", fn:false() )
> >   let $new-config := admin:database-add-range-element-index($config,
> > $dbid,
> > $rangespec)
> >   return admin:save-configuration($new-config)
> >
> > Then with the following documents inserted:
> >
> >   let $step := 3
> >   let $start := xs:date("2000-01-01")
> >
> >   let $_ := xdmp:document-insert("/deb",
> > <person><role>Bloo</role><birth>{$start + 3 * $step *
> > xs:dayTimeDuration('P1D')}</birth></person>)
> >   let $_ := xdmp:document-insert("/eve",
> > <person><role>Bloo</role><birth>{$start + 2 * $step *
> > xs:dayTimeDuration('P1D')}</birth></person>)
> >   let $_ := xdmp:document-insert("/flo",
> > <person><role>Bloo</role><birth>{$start + 1 * $step *
> > xs:dayTimeDuration('P1D')}</birth></person>)
> >   return ()
> >
> > The following query returns all 3 documents with the same score:
> >
> >   import module namespace search =
> > "http://marklogic.com/appservices/search";
> > at "/MarkLogic/appservices/search/search.xqy";
> >
> >   let $or-query := cts:or-query((
> >         cts:and-query(()),
> >         cts:element-range-query(xs:QName("birth"), ">",
> > xs:date("2000-01-01"), ("score-function=linear", "slope-factor=1.0"))
> >   ))
> >
> >   let $options := <options
> > xmlns="http://marklogic.com/appservices/search";>
> >     <additional-query>{$or-query}</additional-query>
> >   </options>
> >
> >   let $search := search:search("Bloo", $options)
> >
> >   return for $result in $search//search:result
> >     return $result/@uri || ": " || $result/@score
> >
> > In fact, the step needs to be increased to 4 days in order for one of
> > them
> > to have a different score and to 8 for them to get distinct scores. Once
> > again, if anyone can explain why this is not working as we expect it
> > would
> > be very helpful,
> >
> > Thanks
> >
> > Chris Rimmer
> >
> > 67 Bricks
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to