mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00

Conflicts: lib/Alchemy/Phrasea/Command/Developer/JavascriptBuilder.php lib/Alchemy/Phrasea/Controller/Prod/Basket.php lib/Alchemy/Phrasea/Core/Provider/TaskManagerServiceProvider.php lib/classes/Exception/Feed/ItemNotFound.php lib/classes/Exception/Feed/PublisherNotFound.php lib/classes/Feed/Abstract.php lib/classes/Feed/Adapter.php lib/classes/Feed/Aggregate.php lib/classes/Feed/Collection.php lib/classes/Feed/CollectionInterface.php lib/classes/Feed/Entry/Adapter.php lib/classes/Feed/Entry/Collection.php lib/classes/Feed/Entry/Interface.php lib/classes/Feed/Entry/Item.php lib/classes/Feed/Entry/ItemInterface.php lib/classes/Feed/Interface.php lib/classes/Feed/Link.php lib/classes/Feed/LinkInterface.php lib/classes/Feed/Publisher/Adapter.php lib/classes/Feed/Publisher/Interface.php lib/classes/Feed/Token.php lib/classes/Feed/TokenAggregate.php lib/classes/Feed/XML/Abstract.php lib/classes/Feed/XML/Atom.php lib/classes/Feed/XML/Cooliris.php lib/classes/Feed/XML/Interface.php lib/classes/Feed/XML/RSS.php lib/classes/Feed/XML/RSS/ImageInterface.php lib/classes/http/request.php lib/classes/module/console/schedulerStart.php lib/classes/module/console/schedulerState.php lib/classes/module/console/schedulerStop.php lib/classes/module/console/taskState.php lib/classes/module/console/tasklist.php lib/classes/module/console/taskrun.php lib/classes/registry.php lib/classes/registryInterface.php lib/classes/set/order.php lib/classes/system/url.php lib/classes/task/Scheduler.php lib/classes/task/appboxAbstract.php lib/classes/task/databoxAbstract.php lib/classes/task/manager.php lib/classes/task/period/RecordMover.php lib/classes/task/period/apibridge.php lib/classes/task/period/archive.php lib/classes/task/period/cindexer.php lib/classes/task/period/emptyColl.php lib/classes/task/period/ftp.php lib/classes/task/period/ftpPull.php lib/classes/task/period/subdef.php lib/classes/task/period/test.php lib/classes/task/period/writemeta.php lib/conf.d/PhraseaFixture/AbstractWZ.php lib/conf.d/PhraseaFixture/Basket/LoadFiveBaskets.php lib/conf.d/PhraseaFixture/Basket/LoadOneBasket.php lib/conf.d/PhraseaFixture/Basket/LoadOneBasketEnv.php lib/conf.d/PhraseaFixture/Lazaret/LoadOneFile.php lib/conf.d/PhraseaFixture/Story/LoadOneStory.php lib/conf.d/PhraseaFixture/UsrLists/ListAbstract.php lib/conf.d/PhraseaFixture/UsrLists/UsrList.php lib/conf.d/PhraseaFixture/UsrLists/UsrListEntry.php lib/conf.d/PhraseaFixture/UsrLists/UsrListOwner.php lib/conf.d/PhraseaFixture/ValidationParticipant/LoadOneParticipant.php lib/conf.d/PhraseaFixture/ValidationParticipant/LoadParticipantWithSession.php lib/conf.d/PhraseaFixture/ValidationSession/LoadOneValidationSession.php
251 lines
6.0 KiB
PHP
251 lines
6.0 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Phraseanet
|
|
*
|
|
* (c) 2005-2014 Alchemy
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Alchemy\Phrasea\SearchEngine;
|
|
|
|
use Alchemy\Phrasea\Application;
|
|
use Alchemy\Phrasea\SearchEngine\SearchEngineOptions;
|
|
use Alchemy\Phrasea\SearchEngine\SearchEngineResult;
|
|
use Alchemy\Phrasea\Exception\RuntimeException;
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
use Alchemy\Phrasea\Model\Entities\FeedEntry;
|
|
|
|
interface SearchEngineInterface
|
|
{
|
|
const GEM_TYPE_RECORD = 'record';
|
|
const GEM_TYPE_STORY = 'story';
|
|
const GEM_TYPE_ENTRY = 'entry';
|
|
|
|
/**
|
|
* Returns the name of the search engine
|
|
*
|
|
* @return string The name of the search-engine
|
|
*/
|
|
public function getName();
|
|
|
|
/**
|
|
* Check the status of the search engine
|
|
*
|
|
* @return array An array of key/value parameters
|
|
* @throws RuntimeException if something is wrong
|
|
*/
|
|
public function getStatus();
|
|
|
|
/**
|
|
* @return ConfigurationPanelInterface
|
|
*/
|
|
public function getConfigurationPanel();
|
|
|
|
/**
|
|
* @return array an array of field names
|
|
*/
|
|
public function getAvailableDateFields();
|
|
|
|
/**
|
|
* @return array an array containing criteria values as key and criteria names as value
|
|
*/
|
|
public function getAvailableSort();
|
|
|
|
/**
|
|
* @return string The default sort
|
|
*/
|
|
public function getDefaultSort();
|
|
|
|
/**
|
|
* @return string The default sort
|
|
*/
|
|
public function isStemmingEnabled();
|
|
|
|
/**
|
|
* @return array an array containing sort order values as key and sort order names as value
|
|
*/
|
|
public function getAvailableOrder();
|
|
|
|
/**
|
|
* @return Boolean return true if the search engine supports stemmed search
|
|
*/
|
|
public function hasStemming();
|
|
|
|
/**
|
|
*
|
|
* @return an array of self::GEM_TYPE_* indexed types
|
|
*/
|
|
public function getAvailableTypes();
|
|
|
|
/**
|
|
* Add a record to index
|
|
*
|
|
* @param \record_adapter $record
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function addRecord(\record_adapter $record);
|
|
|
|
/**
|
|
* Remove a record from index
|
|
*
|
|
* @param \record_adapter $record
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function removeRecord(\record_adapter $record);
|
|
|
|
/**
|
|
* Update a record in index
|
|
*
|
|
* @param \record_adapter $record
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function updateRecord(\record_adapter $record);
|
|
|
|
/**
|
|
* Add a story to index
|
|
*
|
|
* @param \record_adapter $story
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function addStory(\record_adapter $story);
|
|
|
|
/**
|
|
* Remove a story from index
|
|
*
|
|
* @param \record_adapter $story
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function removeStory(\record_adapter $story);
|
|
|
|
/**
|
|
* Update a story in index
|
|
*
|
|
* @param \record_adapter $story
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function updateStory(\record_adapter $story);
|
|
|
|
/**
|
|
* Add an entry to index
|
|
*
|
|
* @param FeedEntry $entry
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function addFeedEntry(FeedEntry $entry);
|
|
|
|
/**
|
|
* Remove an entry to index
|
|
*
|
|
* @param FeedEntry $entry
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function removeFeedEntry(FeedEntry $entry);
|
|
|
|
/**
|
|
* Update an entry in the index
|
|
*
|
|
* @param FeedEntry $entry
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function updateFeedEntry(FeedEntry $entry);
|
|
|
|
/**
|
|
* Set options to search-engine
|
|
*
|
|
* @param SearchEngineOptions $options
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function setOptions(SearchEngineOptions $options);
|
|
|
|
/**
|
|
* Reset search-engine options
|
|
*
|
|
* @return SearchEngineInterface
|
|
* @throws RuntimeException
|
|
*/
|
|
public function resetOptions();
|
|
|
|
/**
|
|
*
|
|
* @param string $query
|
|
* @param integer $offset
|
|
* @param integer $perPage
|
|
*
|
|
* @return SearchEngineResult
|
|
*/
|
|
public function query($query, $offset, $perPage);
|
|
|
|
/**
|
|
* Return an array of suggestions corresponding to the last word of the
|
|
* query
|
|
*
|
|
* @param string $query
|
|
*
|
|
* @return ArrayCollection A collection of SearchEngineSuggestion
|
|
*/
|
|
public function autocomplete($query);
|
|
|
|
/**
|
|
* Highlight the fields of a record
|
|
*
|
|
* @param type $query
|
|
* @param type $fields
|
|
* @param \record_adapter $record
|
|
*
|
|
* @return array The array of highlighted fields
|
|
*/
|
|
public function excerpt($query, $fields, \record_adapter $record);
|
|
|
|
/**
|
|
* Reset the cache of the SE (if applicable)
|
|
*
|
|
* @return SearchEngineInterface
|
|
*/
|
|
public function resetCache();
|
|
|
|
/**
|
|
* Clear the cache of the SE for the current user (if applicable)
|
|
*
|
|
* @return SearchEngineInterface
|
|
*/
|
|
public function clearCache();
|
|
|
|
/**
|
|
* Clear all cache prior to the given date (if applicable)
|
|
*
|
|
* If no date provided, clear all entries
|
|
*
|
|
* @return SearchEngineInterface
|
|
*/
|
|
public function clearAllCache(\DateTime $date = null);
|
|
|
|
/**
|
|
* Returns a subscriber
|
|
*
|
|
* @return EventSubscriberInterface
|
|
*/
|
|
public static function createSubscriber(Application $app);
|
|
|
|
/**
|
|
* Creates the adapter.
|
|
*
|
|
* @param Application $app
|
|
* @param array $options
|
|
*/
|
|
public static function create(Application $app, array $options = []);
|
|
}
|