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" という用語が含まれていない可能性は十分にあります。

Match クエリまたは Query_String を使用してみてください。

ElasticSearch では「用語」には特別な意味があります。Term は、インデックスの基本的な原子単位です。用語は、テキストがアナライザーを通過した後に生成されます。「screen_name」にインデックスに関連付けられたアナライザーがある場合、「sohail」はインデックスに保存される前にある程度変更されます。

于 2013-03-18T10:34:45.770 に答える