Hi, Puneet:

Specifying a json-property of title is enough to restrict the word query to the 
content of the title.

You probably don't want the "fragment-scope": "properties" qualifier. That 
restricts the query to the metadata properties of documents.

If the title JSON property appears within the JSON document itself, that's not 
what you want.  Instead, you want the fragment scope to be the document.  
Because that's the default and the usual case, you should simply omit the 
"fragment-scope" qualifier.

The primary use cases for metadata properties are exposing metadata for binary 
documents and maintaining state for CPF (the content processing framework).  
For document retrievability and processing, it's usually much better to put all 
of the data in the document so there is only one IO operation for any query 
retrieving the document.

For more detail about metadata properties, see:

    http://docs.marklogic.com/guide/app-dev/properties#id_19516


Erik Hennum

________________________________
From: [email protected] 
[[email protected]] on behalf of Yinyan guy 
[[email protected]]
Sent: Monday, May 04, 2015 7:07 AM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] custom search: Field contraint

Thank Eric. It worked but I am also restricting the fragment-scope to 
properties. Does this restrict the search results only to title (searched with 
title:Book). My documents contain the word Book in title as well as 
description. I want to restrict my search results to the ones in title only.
is this possible?
I am using following JSON
{"options": {"constraint": [{"name": "title","word": {"json-property": 
"title","fragment-scope" : "properties"}}]}}
regards,
Puneet

________________________________
From: [email protected]
To: [email protected]
Date: Mon, 4 May 2015 12:57:31 +0000
Subject: Re: [MarkLogic Dev General] custom search: Field contraint

Hi, Puneet:

To search with a single word instead of the full value, use a word constraint:

    http://docs.marklogic.com/guide/rest-dev/appendixa#id_72270


Erik Hennum

________________________________
From: [email protected] 
[[email protected]] on behalf of Yinyan guy 
[[email protected]]
Sent: Monday, May 04, 2015 4:25 AM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] custom search: Field contraint

Hi Eric,
Thank you for your tip. I added the value constraint and it did allow me to 
search with title:"The Book Title".
However it requires me to add the complete title. What would allow me to search 
with just one word like title:book?
regards,
Puneet

________________________________
From: [email protected]
To: [email protected]
Date: Sun, 3 May 2015 13:33:55 +0000
Subject: Re: [MarkLogic Dev General] custom search: Field contraint

Hi, Yinyan:

A collection is a named set to which documents can be added.  Thus, a 
collection constraint will search for the documents that are members of the 
specified collections.

To match the value of a JSON property, use a value constraint.  Please see:

    http://docs.marklogic.com/guide/rest-dev/appendixa#id_48883

In the example, that would look similar to the following (untested) options:

    {"options": {"constraint": [{"name": "title", "value": {"json-property": 
"title"}}]}}

You can also use a range constraint if you need datatyped matching or 
comparison (for which you must defined a range index in advance using the Admin 
UI):

    http://docs.marklogic.com/guide/rest-dev/appendixa#id_93906

For more information about collections, please see:

    http://docs.marklogic.com/guide/search-dev/collections

You might also want to know that, in MarkLogic, the term "field" connotes an 
abstraction over JSON properties or XML elements:

    http://docs.marklogic.com/guide/admin/fields


Hoping that helps,


Erik Hennum

________________________________
From: [email protected] 
[[email protected]] on behalf of Yinyan guy 
[[email protected]]
Sent: Sunday, May 03, 2015 3:44 AM
To: [email protected]
Subject: [MarkLogic Dev General] custom search: Field contraint

Hi All,
I am trying to implement Field search using REST Search API. The JSON structure 
of all my document is as follows

{
"id" : 1,
"title" : "The Book Title"
"price" : "$100"
}

and I would want to search title:Book using my search API 
("http://localhost:8040/v1/search?q=title:mini<http://localhost:9070/?q=title:mini>")

I have tried using all the following options to update the settings


curl -v -X PUT  --digest --user admin:admin  -H "Content-type: 
application/json" -d '{"options": {"constraint": [{"collection": {"prefix": 
"\title"},"name": "title"}]}}' 'http://localhost:8040/v1/config/query/entitle2'


curl -v -X PUT  --digest --user admin:admin  -H "Content-type: 
application/json" -d '{"options": {"constraint": [{"collection": {"prefix": 
"title"},"name": "title"}]}}' 'http://localhost:8040/v1/config/query/entitle1'


curl -v -X PUT  --digest --user admin:admin  -H "Content-type: 
application/json" -d '{"options": {"constraint": [{"collection": {"prefix": 
"title/"},"name": "title"}]}}' 'http://localhost:8040/v1/config/query/entitle'


All the above commands worked fine and I can see all of these constraints in 
("http://localhost:8040/v1/config/query?format=json";) but none of them return 
any results.


I have following questions


1. what would be right path for my JSON? (title. title/,\title)

2. is this the right way to customize the search API?


Thanks in advance.

regards.

Puneet

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

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

Reply via email to