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