Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-24177

Improve Search to allow Field criterion use on non searchable Fields

    XMLWordPrintable

Details

    Description

      Search in Platform stack is a replacement both for Search and Fetch functions in legacy.

      Right now this is disallowed and Field, MapLocationDistance and potentially others meant for querying (filtering like in legacy fetch functions), so the change would be to:

      • allow despite this flag, simplifying the queries needed there
      • just make sure indexing (check all search engines) takes this into account, and only in regards to FullText indexing
      • Document that reindexing is needed if this flag is re configured (when we have async indexing in place we should do this in the background)

      Draft for API changes:

      diff --git a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinition.php b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinition.php
      index 7fd0fdb..b3f9b4c 100644
      --- a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinition.php
      +++ b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinition.php
      @@ -23,7 +23,7 @@ use eZ\Publish\API\Repository\Values\ValueObject;
        * @property-read string $fieldTypeIdentifier String identifier of the field type
        * @property-read boolean $isTranslatable indicates if fields of this definition are translatable
        * @property-read boolean $isRequired indicates if this field is required in the content object
      - * @property-read boolean $isSearchable indicates if the field is searchable
      + * @property-read boolean $isSearchable indicates if the field is indexed for FullText search
        * @property-read boolean $isInfoCollector indicates if this field is used for information collection
        * @property-read $defaultValue the default value of the field
        */
      @@ -150,7 +150,11 @@ abstract class FieldDefinition extends ValueObject
           protected $defaultValue;
       
           /**
      -     * Indicates if th the content is searchable by this attribute
      +     * Indicates if the field is indexed for FullText search
      +     *
      +     * Means that if FieldType is indexable and this is true, then content for the Field will be indexed
      +     * for FullText search. Field either way will (if supported) still be queryable with Field specific Criteria.
      +     *
            *
            * @var boolean
            */
      diff --git a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionCreateStruct.php b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitio
      index 24a7141..7a99d85 100644
      --- a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionCreateStruct.php
      +++ b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionCreateStruct.php
      @@ -108,7 +108,10 @@ class FieldDefinitionCreateStruct extends ValueObject
           public $defaultValue;
       
           /**
      -     * Indicates if th the content is searchable by this attribute
      +     * Indicates if the field is indexed for FullText search
      +     *
      +     * Means that if FieldType is indexable and this is true, then content for the Field will be indexed
      +     * for FullText search. Field either way will (if supported) still be queryable with Field specific Criteria.
            *
            * @var boolean
            */
      diff --git a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionUpdateStruct.php b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitio
      index c0fb3d3..c26de3a 100644
      --- a/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionUpdateStruct.php
      +++ b/eZ/Publish/API/Repository/Values/ContentType/FieldDefinitionUpdateStruct.php
      @@ -96,7 +96,13 @@ class FieldDefinitionUpdateStruct extends ValueObject
           public $defaultValue;
       
           /**
      -     * If set the the searchable flag is set to this value.
      +     * If set the the searchable flag is updated to indicate if the field is indexed for FullText search
      +     *
      +     * Means that if FieldType is indexable and this is true, then content for the Field will be indexed
      +     * for FullText search. Field either way will (if supported) still be queryable with Field specific Criteria.
      +     *
      +     * Note: Changes to this flag means existing content with this attribute will need to be re-indexed, until async
      +     *       indexing support is added this needs to be done manually.
            *
            * @var boolean
            */
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            andre.romcke-obsolete@ez.no André Rømcke (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 4 days
                4d