Difference between revisions of "Features/Plain Query Format"
(81 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | <noinclude>{{GoogleTrans-en}}{{TOCright}}</noinclude> | + | <noinclude>{{GoogleTrans-en}}{{TOCright}} |
+ | [[Category:Feature Page Incomplete]] | ||
+ | [[Category:FeatureObsoleted|Plain Query Format]]</noinclude> | ||
<!-- All fields on this form are required to be accepted. | <!-- All fields on this form are required to be accepted. | ||
Line 8: | Line 10: | ||
== Summary == | == Summary == | ||
− | Provide simple string query format for Datastore find() method to cover all kinds of requests. | + | Provide a simple string query format for the Datastore find() method to cover all kinds of requests. |
== Owner == | == Owner == | ||
− | * Name: | + | * Name: ? |
− | * Email: | + | * Email: ? |
== Current status == | == Current status == | ||
− | * Targeted release: | + | * Targeted release: ? |
− | * Last updated: | + | * Last updated: Tue Aug 25 07:59:58 UTC 2009 |
− | * Percentage of completion: | + | * Percentage of completion: 90%, core part was implemented within [[Version support for datastore/Proposal]] |
== Detailed Description == | == Detailed Description == | ||
− | + | Let users create complex queries with all possible terms (see Xapian [http://xapian.org/docs/glossary.html glossary]) including system ones. Users can use in query string [[#System prefixes|system]] prefixes and predefined set of [[#Users predefined prefixes|custom]] prefixes. | |
+ | |||
+ | Prefixes in query string could look like | ||
+ | <prefix>:<one-word-value> | ||
+ | <prefix>:"<multi-word-value>" | ||
+ | |||
+ | Values for system prefixes, Sugar fills on its own, i.e., if ''title'' metadata field is ''My activity'', user can type ''title:"My activity"'' in query string to search ''My activity'' substring only within ''title'' fields. | ||
+ | |||
+ | Values for [[#Users predefined prefixes|custom]] prefixes user should place to ''tags'' metadata field in the same form like in query string. | ||
+ | |||
+ | If value is multi-worded, any of these words could be used in query, e.g., ''title:My'' or ''title:activity''. | ||
+ | |||
+ | ==== System prefixes ==== | ||
+ | |||
+ | {| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;" | ||
+ | |-style="background:#787878; color: white;" | ||
+ | ! Datastore field | ||
+ | ! Flags/Parameters | ||
+ | ! Dublin Core | ||
+ | ! Notes | ||
+ | |- | ||
+ | | ''uid'' | ||
+ | | | ||
+ | | [http://dublincore.org/documents/dces/#identifier identifier] | ||
+ | | | ||
+ | |- | ||
+ | | ''bundle_id'' | ||
+ | | | ||
+ | | | ||
+ | | postponed until we decide to use Journal to represent activities | ||
+ | |- | ||
+ | | ''mime_type'' | ||
+ | | | ||
+ | | [http://dublincore.org/documents/dces/#format format] | ||
+ | | | ||
+ | |- | ||
+ | | ''title'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#title title] | ||
+ | | | ||
+ | |- | ||
+ | | ''activity'' | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | ''activity_id'' | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | ''timestamp'' | ||
+ | | ranged sorted | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | ''keep'' | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | ''tags'' | ||
+ | | | ||
+ | | | ||
+ | | see [[#Users predefined terms]] | ||
+ | |- | ||
+ | | ''filesize'' | ||
+ | | ranged sorted | ||
+ | | | ||
+ | | postponed for [[Features/Unified Browser for Objects]] | ||
+ | |- | ||
+ | | ''participant'' | ||
+ | | sorted | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | ''description'' | ||
+ | | | ||
+ | | [http://dublincore.org/documents/dces/#description description] | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Users predefined prefixes ==== | ||
+ | |||
+ | {| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;" | ||
+ | |-style="background:#787878; color: white;" | ||
+ | ! Datastore field | ||
+ | ! Flags/Parameters | ||
+ | ! Dublin Core | ||
+ | ! Notes | ||
+ | |- | ||
+ | | ''contributor'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#contributor contributor] | ||
+ | |- | ||
+ | | ''coverage'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#coverage coverage] | ||
+ | |- | ||
+ | | ''creator'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#creator creator] | ||
+ | |- | ||
+ | | ''date'' | ||
+ | | ranged sorted | ||
+ | | [http://dublincore.org/documents/dces/#date date] | ||
+ | |- | ||
+ | | ''language'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#language language] | ||
+ | |- | ||
+ | | ''publisher'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#publisher publisher] | ||
+ | |- | ||
+ | | ''relation'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#relation relation] | ||
+ | |- | ||
+ | | ''rights'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#rights rights] | ||
+ | |- | ||
+ | | ''source'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#source source] | ||
+ | |- | ||
+ | | ''subject'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#subject subject] | ||
+ | |- | ||
+ | | ''type'' | ||
+ | | sorted | ||
+ | | [http://dublincore.org/documents/dces/#type type] | ||
+ | |- | ||
+ | | ''track'' | ||
+ | | ranged sorted | ||
+ | |- | ||
+ | | ''disc'' | ||
+ | | ranged sorted | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== Result set control parameters ==== | ||
+ | |||
+ | New find() method still has optional dictionary argument to control final result set. | ||
+ | |||
+ | {| border=1 cellpadding=3 style="border: 1px solid white; border-collapse: collapse; background: #e3e4e5;" | ||
+ | |-style="background:#787878; color: white;" | ||
+ | ! Dictionary key | ||
+ | ! Notes | ||
+ | |- | ||
+ | | ''offset'' | ||
+ | |- | ||
+ | | ''limit'' | ||
+ | |- | ||
+ | | ''order_by'' | ||
+ | |- | ||
+ | | ''lang'' | ||
+ | | to setup stemming | ||
+ | |} | ||
== Benefit to Sugar == | == Benefit to Sugar == | ||
− | + | * Feature lets users specify exact metadata fields to search for. | |
== Scope == | == Scope == | ||
− | Datastore | + | * implementation in Datastore |
== How To Test == | == How To Test == | ||
Line 47: | Line 210: | ||
== User Experience == | == User Experience == | ||
− | + | ||
+ | * feature just expands query dictionary | ||
== Dependencies == | == Dependencies == | ||
− | + | ||
+ | Just regular glucose dependencies. | ||
== Contingency Plan == | == Contingency Plan == | ||
Line 57: | Line 222: | ||
== Documentation == | == Documentation == | ||
− | + | ||
+ | * [http://www.xapian.org/docs/queryparser.html Xapian query language] | ||
+ | * [http://dublincore.org/documents/usageguide/ Using Dublin Core] | ||
+ | * [http://lcweb2.loc.gov/diglib/loc.terms/relators/dc-relators.html Relator Terms and Dublin Core Elements] | ||
== Release Notes == | == Release Notes == | ||
Line 64: | Line 232: | ||
== Comments and Discussion == | == Comments and Discussion == | ||
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | * See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 17:01, 5 November 2013
Summary
Provide a simple string query format for the Datastore find() method to cover all kinds of requests.
Owner
- Name: ?
- Email: ?
Current status
- Targeted release: ?
- Last updated: Tue Aug 25 07:59:58 UTC 2009
- Percentage of completion: 90%, core part was implemented within Version support for datastore/Proposal
Detailed Description
Let users create complex queries with all possible terms (see Xapian glossary) including system ones. Users can use in query string system prefixes and predefined set of custom prefixes.
Prefixes in query string could look like
<prefix>:<one-word-value> <prefix>:"<multi-word-value>"
Values for system prefixes, Sugar fills on its own, i.e., if title metadata field is My activity, user can type title:"My activity" in query string to search My activity substring only within title fields.
Values for custom prefixes user should place to tags metadata field in the same form like in query string.
If value is multi-worded, any of these words could be used in query, e.g., title:My or title:activity.
System prefixes
Datastore field | Flags/Parameters | Dublin Core | Notes |
---|---|---|---|
uid | identifier | ||
bundle_id | postponed until we decide to use Journal to represent activities | ||
mime_type | format | ||
title | sorted | title | |
activity | |||
activity_id | |||
timestamp | ranged sorted | ||
keep | |||
tags | see #Users predefined terms | ||
filesize | ranged sorted | postponed for Features/Unified Browser for Objects | |
participant | sorted | ||
description | description |
Users predefined prefixes
Datastore field | Flags/Parameters | Dublin Core | Notes |
---|---|---|---|
contributor | sorted | contributor | |
coverage | sorted | coverage | |
creator | sorted | creator | |
date | ranged sorted | date | |
language | sorted | language | |
publisher | sorted | publisher | |
relation | sorted | relation | |
rights | sorted | rights | |
source | sorted | source | |
subject | sorted | subject | |
type | sorted | type | |
track | ranged sorted | ||
disc | ranged sorted |
Result set control parameters
New find() method still has optional dictionary argument to control final result set.
Dictionary key | Notes |
---|---|
offset | |
limit | |
order_by | |
lang | to setup stemming |
Benefit to Sugar
- Feature lets users specify exact metadata fields to search for.
Scope
- implementation in Datastore
How To Test
This does not need to be a full-fledged document. Describe the dimensions of tests that this feature is expected to pass when it is done. If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be.
Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
A good "how to test" should answer these four questions:
- What special hardware / data / etc. is needed (if any)?
- How do I prepare my system to test this feature? What packages need to be installed, config files edited, etc.?
- What specific actions do I perform to check that the feature is working like it's supposed to?
- What are the expected results of those actions?
User Experience
- feature just expands query dictionary
Dependencies
Just regular glucose dependencies.
Contingency Plan
None necessary, revert to previous release behaviour.
Documentation
Release Notes
The Sugar Release Notes inform end-users about what is new in the release. An Example is 0.84/Notes. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the release team and shipped with the release.