我在我的Symfony项目中安装了ONGR ElasticSearchBundle。要搜索包含公司名称和描述的索引,索引名称为公司。它看起来像这样:
"mappings": {
"_doc": {
"properties": {
"id": {"type": "long"},
"entityid": {"type": "long"},
"entityname": {"type": "keyword"},
"name": {"type": "text"},
"street": {"type": "text"},
"city": {"type": "text"},
"zip": {"type": "long"},
"ziptext": {"type": "keyword"},
"regionisocode": {"type": "keyword"},
"desc": {"type": "text"},
"branch": {"type": "text"},
"branchid": {"type": "long"},
"foundingyear": {"type": "date"}
}
}
}
然后我使用控制台工具创建了一个文档。
/**
* Company
*
* @ESDocument()
*/
class Company
{
/**
* @var string
*
* @ESProperty(type="long", options={"index"="not_analyzed"})
*/
private $id;
/**
* @var string
*
* @ESProperty(type="long", options={"index"="not_analyzed"})
*/
private $entityid;
/**
* @var string
*
* @ESProperty(type="keyword", options={"index"="not_analyzed"})
*/
private $entityname;
...
到目前为止,这似乎有效。与 ElasicSearch 主机的连接正在工作,但即使我执行 MatchAllQuery(( 也没有获得搜索结果,我想知道这是一个映射问题?梅比有人有提示吗?
真诚地
对你正在使用的工具没有任何经验(在 ES 旁边(,但你是否实际索引/插入了任何文档?
如果在本地运行 ES,请尝试:localhost:9200/companies/_search
以验证是否有任何文档以及是否已实际创建索引。
您是否遵循了这些步骤?此外,您还可以在此处找到有关索引数据的更多信息。
祝您编码愉快! :D