1

使用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();
4

1 回答 1

0

不知道您的映射很难说,但是文档属性“screen_name”很可能不包含术语“sohail”。

尝试使用匹配查询或 Query_String。

“术语”在 ElasticSearch 中具有特殊含义。术语是索引的基本原子单位。在您的文本通过分析器运行后生成术语。如果“screen_name”有一个与索引关联的分析器,则“sohail”在保存到索引之前会以某种容量进行修改。

于 2013-03-18T10:34:45.770 回答