Hi, Jaydip:

Working with MarkLogic will be much easier and more flexible if you model each 
book as a separate document.  (If you're familiar with relational databases, 
think of each document as a row, not as a table.)

Can you explain what you are trying to accomplish with the field?  If you 
create separate element value constraints for the title and genre, does that 
work?


Hoping that helps,


Erik Hennum


________________________________
From: [email protected] 
[[email protected]] on behalf of Jaydip Rananavare 
[[email protected]]
Sent: Thursday, February 11, 2016 6:19 AM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Issue with field range and field value 
indexes

Hi Rob,

Thanks for help,
I tried debug options its gives me overview of what kind of queries are getting 
created,
But still I am wondering why above query works fine when i pass 
'book:(test-field:(Computer))' but does not work when I search for 
'book:(test-field:(Fantasy))'

I tried same query with multiple files and my observation is it works fine only 
if given value is present in first element.
In above case value "Computer" is present in first book element and "Fantasy" 
is present in second book element.

On Thu, Feb 11, 2016 at 6:53 PM, Rob Szkutak 
<[email protected]<mailto:[email protected]>> wrote:
Try adding <debug>true</debug> to your options and taking a look at the 
cts:search() expression that's being generated. That should give you some clues.

Best,
Rob

Rob Szkutak
Senior Consultant
MarkLogic Corporation
[email protected]<mailto:[email protected]>
www.marklogic.com<http://www.marklogic.com>

________________________________
From: 
[email protected]<mailto:[email protected]>
 
[[email protected]<mailto:[email protected]>]
 on behalf of Jaydip Rananavare 
[[email protected]<mailto:[email protected]>]
Sent: Thursday, February 11, 2016 5:57 AM
To: MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] Issue with field range and field value indexes

Hi All,

We are facing an issue with field value searches in below query,
example document is

<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies,
      an evil sorceress, and her own childhood to become queen
      of the world.</description>
   </book>
</catalog>
----------------
query is

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";;
import module namespace search = "http://marklogic.com/appservices/search"; at 
"/MarkLogic/appservices/search/search.xqy";
let $options := <options xmlns="http://marklogic.com/appservices/search";>
        <search-option>unfiltered</search-option>
        <return-results>true</return-results>
        <return-query>true</return-query>
        <return-facets>false</return-facets>
        <constraint name="book">
            <container>
                <element name="book" ns="" />
            </container>
        </constraint>
         <constraint name="test-field-2">
            <range type="xs:string" 
collation="http://marklogic.com/collation/en/S1";>
                <field name="test-field-2"/>
            </range>
        </constraint>
         <constraint name="test-field">
            <value>
                <field name="test-field"/>
            </value>
        </constraint>
        <constraint name="author">
            <range type="xs:string" 
collation="http://marklogic.com/collation/en/S1";>
                <path-index>/catalog/book/author</path-index>
            </range>
        </constraint>
    </options>
let $term := 'book:(test-field:(Midnight Rain))'
let $query := cts:query(search:parse($term, $options))
return search:resolve(<x>{$query}</x>/node(), $options)
-----------------

where test-field is path field with  /catalog/book/title and 
/catalog/book/genre paths  and field value searches and positions are enabled

when we combined field-value search with element query as above query it does 
not give results when we search for value that belongs to second  book tag i.e 
"Midnight Rain"
but when we search for Computer it gives us one result

same query works for both terms when we do word searches on field

Any help appreciated !

--

Thanks and regards,

Jaydip Rananavare

M +91 98 60 07 39 90

_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general




--

Thanks and regards,

Jaydip Rananavare

M +91 98 60 07 39 90
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to