ONGRFilterManagerBundle を使用して全文検索を実行しようとしています。すべてが構成され、プロジェクトに追加されましたが、一部のデータを検索するとすぐに、検索がまったく無関係な結果を返すことがわかりました。
ここに私の設定があります:
ongr_elasticsearch:
managers:
default:
index:
hosts:
- "%env(ELASTIC_HOST)%:%env(ELASTIC_PORT)%"
index_name: project_search
mappings:
- SearchBundle
ongr_filter_manager:
managers:
search_list:
filters:
- content
- pagination
repository: es.manager.default.typed_content
filters:
content:
type: match
request_field: text
document_field: content
pagination:
type: pager
request_field: page
document_field: ~
options:
count_per_page: 12
max_pages: 8
ここに私の文書があります
namespace SearchBundle\Document;
use ONGR\ElasticsearchBundle\Annotation as ES;
/**
* @ES\Document()
*/
class TypedContent implements DocumentInterface
{
/**
* @ES\Id()
* @var string
*/
private $id;
/**
* @ES\Property(type="text")
* @var string
*/
private $content;
/**
* @ES\Property(type="text")
* @var string
*/
private $type;
/**
* @var mixed
*/
private $dataObject;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @param mixed $id
*/
public function setId($id): void
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getContent()
{
return $this->content;
}
/**
* @param mixed $content
*/
public function setContent($content): void
{
$this->content = $content;
}
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
/**
* @param string $type
*/
public function setType(string $type): void
{
$this->type = $type;
}
/**
* @return mixed
*/
public function getDataObject()
{
return $this->dataObject;
}
/**
* @param mixed $dataObject
*/
public function setDataObject($dataObject): void
{
$this->dataObject = $dataObject;
}
}
たとえば、単語を検索するとolive
、すべてのドキュメントの結果セットが取得されますが、「オリーブ」に遠く離れた単語が含まれておらず、スコアはすべての結果で「1」です。
誰が私の間違いを見つけることができますか?