1
使用Elastica - Elasticsearch PHP Client。有很多字段,但我想在「Screen_name」字段中搜索。我必須爲此做些什麼。我用了術語但沒有成功。結果爲空陣列
以下是代碼。通過使用elastica給出空結果的術語搜索
// 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();
感謝您的回覆。我添加一個數據數組,然後elasticsearch自動映射它。我只想在** screen_name **字段中搜索。與術語或任何其他方法。 – 2013-03-18 10:40:27
如果您沒有指定分析儀,ES將自動使用[標準分析儀](http://www.elasticsearch.org/guide/reference/index-modules/analysis/standard-analyzer.html)。嘗試使用匹配查詢,這可能會爲你工作。 – Zach 2013-03-18 11:52:28
現在我正在嘗試這個,但再次是空的結果。 '$ elasticaQueryMatch \t = new Elastica \ Query \ Match(); $ elasticaQueryMatch-> setField('screen_name','sohail'); //在索引上搜索。 $ elasticaResultSet \t = $ elasticaIndex-> search($ elasticaQueryMatch); var_dump($ elasticaResultSet);退出;' – 2013-03-18 12:39:08