Hi Surajit, There are a few things you can look it. Make absolutely sure that you have specified the correct QName (namespace and local name) for the included elements. Also, try it with more documents in the database. The scoring algorithm is a function of the number of documents in the database, and sometimes with only 2 documents, you end up with the same score because the divisor is so small. The maximum score is 16, so a value of 20 is the same as the value of 16.
-Danny From: [email protected] [mailto:[email protected]] On Behalf Of Surajit Bhattacharjee Sent: Friday, August 14, 2009 12:28 PM To: General Mark Logic Developer Discussion Subject: Re: [MarkLogic Dev General] applying relevance weights to XML tags Thanks Danny. I tried the first option with just 2 documents loaded in the database. Both have exactly one occurrence of the word "life". One has it in the "title" element and the other in the "desc" element. Now, when I search for "life" using the new search API (sample code in earlier mail), both documents get returned with exactly the same "score" and "fitness". I have tried setting weights starting from 2.0 to 20.0 for "title" and made sure the documents are reloaded / re-indexed, but still no change. Thanks for your help. Surajit On Wed, Aug 12, 2009 at 6:04 PM, Danny Sokolsky <[email protected]<mailto:[email protected]>> wrote: Hi Surajit, I can think of a few ways to accomplish this. Probably the easiest is to set a weight for word query on the "title" element in the "http://www.sb.com/namespaces/sb" namespace. To so this, go to the word query section of your database configuration and configure an include for that QName with a weight greater than 1.0. Similarly for the desc QName. Doing it this way will "bake" that weighting into the indexes. Note that it will do this for all instances of this QName in the database, though, so make sure that is OK for your application. If you want something more restrictive than the above approach, you can parse the text yourself and then create your own cts:query, and then pass that to search:resolve. search:resolve is just like search:search except that you do the query parsing. You can create your cts:query however you like, and give each part the weights you desire. You can even use search:parse to initially parse the query, and then take its output and modify it to weight the title element differently (although this might be tricky to get right). You will have to do some slightly tricky boolean logic to do this, but it is possible. If you use all of the grammar of the search API, it will be trickier. I think there are probably other ways, too, but this ought to give you a few things to think about. -Danny From: [email protected]<mailto:[email protected]> [mailto:[email protected]<mailto:[email protected]>] On Behalf Of Surajit Bhattacharjee Sent: Wednesday, August 12, 2009 2:01 PM To: General Mark Logic Developer Discussion Subject: [MarkLogic Dev General] applying relevance weights to XML tags I have 10 documents loaded in Mark Logic, each containing information about a single book. Below is a sample document. <?xml version="1.0" encoding="UTF-8"?> <book xmlns="http://www.sb.com/namespaces/sb"> <title>The Life of David Gale</title> <genre>fiction</genre> <desc>....</desc> <review>...</review> </book> My search goes against the entire document but I want it to apply a higher weight to matches in the TITLE as opposed to DESC. I have read the documentation but it isn't clear how I can get that to happen. Below is my search code using the new search API. xquery version "1.0-ml"; import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy"; search:search("life", <options xmlns="http://marklogic.com/appservices/search"> <constraint name="facet-on-genre"> <range type="xs:string" facet="true"> <facet-option>limit=10</facet-option> <element ns="http://www.sb.com/namespaces/sb" name="genre"/> </range> </constraint> </options>) Surajit _______________________________________________ General mailing list [email protected]<mailto:[email protected]> http://xqzone.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
