使用 Elastica - Elasticsearch PHP客户端。有很多字段,但我想在“Screen_name”字段中搜索。我必须为此做些什么。我使用了术语但没有成功。结果是空数组 这是代码。
// Load index (database)
$elasticaIndex = $elasticaClient->getIndex('twitter_json');
//Load type (table)
$elasticaType = $elasticaIndex->getType('tweet_json');
$elasticaFilterScreenName = new \Elastica\Filter\Term();
$elasticaFilterScreenName->setTerm('screen_name', 'sohail');
//Search on the index.
$elasticaResultSet = $elasticaIndex->search($elasticaFilterScreenName);
var_dump($elasticaResultSet); exit;
$elasticaResults = $elasticaResultSet->getResults();
$totalResults = $elasticaResultSet->getTotalHits();
答案 0 :(得分:0)
在不知道您的映射的情况下很难说,但文档属性“screen_name”很可能不包含术语“sohail”。
尝试使用匹配查询或Query_String。
“Term”在ElasticSearch中具有特殊含义。 Term是索引的基本原子单位。在通过分析器运行文本后生成术语。如果“screen_name”具有与索引关联的分析器,则“sohail”将在保存到索引之前以某种方式进行修改。