And here is some of what the MarkLogic Search Developer's Guide says about
facets:
Constrained Searches and Faceted Navigation
The Search API makes it easy to constrain your searches to a subset of the
content. For example, you can create a search that only returns results for
documents with titles that include the word hello, or you can create a search
that constrains the results to a particular decade. Furthermore, the Search API
makes it easy to express these kinds of searches in a simple query text string.
For example, you can write a query such that the following query text
represents a search that constrains to a particular decade:
decade:2000s
These types of searches are useful in creating facets, which allow a user to
drill down by narrowing the search criteria. Facets also typically have counts
of the number of results that match, and the Search API returns these counts to
use in facets. The following is an example of a facet in an end-user
application:
<picture of the decade facets from the Oscars sample app goes here.../>
Users can click on any of the links to narrow the results of the search by
decade. For example, the query generated by clicking the top link contains the
string decade:2000s, and constrains the search to that decade.
The facet also includes counts for each constraint value. The number to the
right of the link represents the number of search results returned if you
constrain it to that decade.
The Search API returns XML in its response that contains all of the information
to create a facet like the above example. The facets returned from the Search
API include the counts and values needed to generate the user interface. For
example, the following XML, returned from the Search API, was used to create
the above facet:
<search:response total="2370" start="1" page-length="10"
xmlns:search="http://marklogic.com/appservices/search">
<search:facet name="decade">
<search:facet-value name="2000s" count="240">
2000s</search:facet-value>
<search:facet-value name="1990s" count="300">
1990s</search:facet-value>
<search:facet-value name="1980s" count="300">
1980s</search:facet-value>
<search:facet-value name="1970s" count="300">
1970s</search:facet-value>
<search:facet-value name="1960s" count="299">
1960s</search:facet-value>
<search:facet-value name="1950s" count="300">
1950s</search:facet-value>
<search:facet-value name="1940s" count="324">
1940s</search:facet-value>
<search:facet-value name="1930s" count="245">
1930s</search:facet-value>
<search:facet-value name="1920s" count="61">
1920s</search:facet-value>
</search:facet>
</search:response>
The counts and values in the response are also filtered by any other active
query in the search, so they represent the counts for that particular search.
There are many kinds of constraints and facets you can build with the Search
API. For more details about constraints, see Constraint Options.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Geert Josten
Sent: Friday, April 23, 2010 9:42 AM
To: General Mark Logic Developer Discussion
Subject: RE: Whats a "facet" ? was RE: [MarkLogic Dev General] Search API
Hi David,
The term facet comes from 'faceted searching', and has not so much to do with
XML Schema (though it sounds like the definition you mention could be
applicable here). There is a short description on wikipedia that might make a
little more sense: http://en.wikipedia.org/wiki/Faceted_search
It is easier to explain by example though. Just look at http://markmail.com/.
When you enter any search term, it will calculate for each specific searchable
field which values occur within the *current* result set, how many times they
occur, and present the top most options of all of those as links to easily
refine your search. In markmail you can easily refine your search by just
clicking one of the email addresses, selecting a time frame, etc. Such fields
are called facets.
Note again that the main characteristic of such a facet is, that the shown
values match those available in the current search results, not those within
the total set of documents. That makes this faceted searching so interesting..
Kind regards,
Geert
>
drs. G.P.H. (Geert) Josten
Consultant
Daidalos BV
Hoekeindsehof 1-4
2665 JZ Bleiswijk
T +31 (0)10 850 1200
F +31 (0)10 850 1199
mailto:[email protected]
http://www.daidalos.nl/
KvK 27164984
P Please consider the environment before printing this mail.
De informatie - verzonden in of met dit e-mailbericht - is afkomstig van
Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit
bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit
bericht kunnen geen rechten worden ontleend.
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Lee, David
> Sent: vrijdag 23 april 2010 18:17
> To: General Mark Logic Developer Discussion;
> [email protected]
> Subject: Whats a "facet" ? was RE: [MarkLogic Dev General] Search API
>
> I've read this a lot in this group, the term "facet".
> I think I know what a facet is in terms of xmlschema
>
> http://www.w3.org/TR/xmlschema-2/#facets
>
> "[Definition:] A facet is a single defining aspect of a
> *value space*.
> Generally speaking, each facet characterizes a *value space*
> along independent axes or dimensions."
>
> But when used in terms of MarkLogic does it have a different meaning ?
> If so where can I go to learn about it.
>
> Thanks for any advise.
>
> -David
>
>
>
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Pradeep Maddireddy
> Sent: Friday, April 23, 2010 12:09 PM
> To: General Mark Logic Developer Discussion;
> [email protected]
> Subject: Re: [MarkLogic Dev General] Search API
>
> Hi Collen,
>
> Sorry to bother you again.
>
> <book>
> <title>Book Title</title>
> <chapter>
> <title>Chapter Title</title>
> </chapter>
> </book>
>
> As you suggested for my previous mail I created a Database
> Field which includes book and excludes chapter to be able to
> search on Book title alone and to exclude Chapter title for
> the search API. I also needed a Facet on booktitle, looks
> like I may have to change the XMl structure or else include a
> namespace. Could you Please confirm.
>
> Thanks
> Pradeep Maddireddy
>
> On 4/23/10, Colleen Whitney <[email protected]> wrote:
> > Pradeep, range indexes are required for facets in the
> search API, for
> > performance and scalability.
> >
> > --Colleen
> > ________________________________________
> > From: [email protected]
> > [[email protected]] On Behalf Of Pradeep
> Maddireddy
> > [[email protected]]
> > Sent: Friday, April 23, 2010 8:03 AM
> > To: General
> > Subject: [MarkLogic Dev General] Search API
> >
> > Hi...!
> >
> > If the search API has to return facets, is it mandatory
> to build a
> > range index for that element. Is it possible for the search
> API to use
> > a Database field or XPath instead of a simple element and return
> > facets for the Database field or XPath.
> >
> > Thanks
> > Pradeep Maddireddy
> > _______________________________________________
> > General mailing list
> > [email protected]
> > http://xqzone.com/mailman/listinfo/general
> > _______________________________________________
> > General mailing list
> > [email protected]
> > http://xqzone.com/mailman/listinfo/general
> >
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
>
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general