mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-16 06:23:18 +00:00

- Look for text nodes and infer the concepts behind term using thesaurus - Use value objects for thesaurus terms and concepts - Pass a QueryContext holding allowed fields and locales informations when building the Elasticsearch query - Change type hinting and name of query building method on nodes - Remove unused method Node#isFullTextOnly() - Move getFieldsStructure from RecordIndexer to RecordHelper for reusing field structure in SearchEngine
32 lines
674 B
PHP
32 lines
674 B
PHP
<?php
|
|
|
|
namespace Alchemy\Phrasea\SearchEngine\Elastic\AST;
|
|
|
|
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContext;
|
|
|
|
class PrefixNode extends Node
|
|
{
|
|
protected $prefix;
|
|
|
|
public function __construct($prefix)
|
|
{
|
|
$this->prefix = $prefix;
|
|
}
|
|
|
|
public function buildQuery(QueryContext $context)
|
|
{
|
|
return array(
|
|
'multi_match' => array(
|
|
'fields' => $context->getLocalizedFields(),
|
|
'query' => $this->prefix,
|
|
'type' => 'phrase_prefix'
|
|
)
|
|
);
|
|
}
|
|
|
|
public function __toString()
|
|
{
|
|
return sprintf('prefix("%s")', $this->prefix);
|
|
}
|
|
}
|