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

          Issue Links

            Activity

              People

              Assignee:
              andrzej.longosz@ez.no Andrzej Longosz
              Reporter:
              andre.romcke@ez.no André Rømcke
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:

                  Time Tracking

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