Item10437: Allow typed data from DataForms, Foswiki::Form, registerMETA

Priority: Enhancement
Current State: Proposal Required
Released In: n/a
Target Release: minor
Reported By: PaulHarvey
Waiting For:
Last Change By: MichaelDaum
Some ideas:
  • META:FIELD indexes: textarea DataForm types (and others) that don't want their value to be indexed/queryable, maybe they can learn to place their 'value' into an attribute other than value? Eg. _value...
    • Consider a mechanism so that QUERY, FORMFIELD, META, Foswiki::Form->renderForDisplay and friends are still able to pull values for non-indexed instances of META:FIELD.
  • registerMETA could have a new option that takes a hash of keys with queryable/index state on/off, Eg. the following might setup META:FIELD so that it may be instantiated with a value attribute which may or may not be indexed; non-indexed instantiations save data into the _value attribute rather than value, and they are linked to one another so that a get will know to try to pull from _value if we access a non-existent value.
    Foswiki::Meta::registerMeta('FIELD', alias => 'fields', many => 1,
        require => [ 'name' ],
        allow => [ qw(value _value title tooltip attr) ],
        noindex => [ '_value' ],
        mapmissing => { value => '_value' }

This has implications for sorting... if the query algo can't sort on the non-indexed field, it should be enough to throw an error back up to SEARCH.

-- PaulHarvey - 03 Mar 2011

the idea here is to reduce the memory footprint of an index by not putting into it values that are not actually useful (for eg, a large textarea makes poor use of an index - as we mostly regex search them)

-- SvenDowideit - 03 Mar 2011

I think the reason my suggestion is convoluted is because I was under the impression that you could only enable indexes on a collection in a way that would be an all or nothing type selection - IE. You either have ALL FIELD.value indexed, or none at all.

The _value approach simply gives an alternative key name to put the unindexed value.

Anyway, another thought... can we enable indexes "on-demand"? I.e. Before firing off a query to mongo, check to see that the document properties we're querying on are actually indexed; enable indexes on any that aren't; then send the query...

... I understand that all this probably isn't practical inside a view request, just brainstorming smile

-- PaulHarvey - 19 Apr 2011

I'm considering adding a no-index hint to the Dataform definition attributes - and hope there's something similar for registerMeta..

-- SvenDowideit - 19 Apr 2011

Closed Item10721 as a duplicate of this; re-titled this bug to reflect that. Created AllowTypedData. Changed to ProposalRequired.

-- PaulHarvey - 10 Aug 2011

Removed SolrPlugin from "Components" as it solved the problem otherwise.

-- MichaelDaum - 21 Sep 2015

ItemTemplate edit

Summary Allow typed data from DataForms, Foswiki::Form, registerMETA
ReportedBy PaulHarvey
Codebase trunk
SVN Range
AppliesTo Engine
Component BibtexFormfieldPlugin, DBIStoreContrib, FoswikiFunc, FoswikiMeta, ListFormfieldPlugin, MongoDBPlugin, SEARCH, SemanticLinksPlugin
Priority Enhancement
CurrentState Proposal Required
TargetRelease minor
ReleasedIn n/a
Topic revision: r7 - 21 Sep 2015, MichaelDaum - This page was cached on 20 Oct 2020 - 10:38.

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy