php - 按条件搜索,使用elastica给出空结果

标签 php search elasticsearch elastica

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

最佳答案

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

尝试使用匹配查询或Query_String。

“条款”在ElasticSearch中具有特殊含义。术语是索引的基本原子单位。在您的文本通过分析仪运行后生成术语。如果“screen_name”具有与索引关联的分析器,则“sohail”将被修改为某些容量,然后再保存到索引中。

关于php - 按条件搜索,使用elastica给出空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15474510/

相关文章:

php - 在 PHP 中使用预填充的下拉列表将输出发送到 INSERT

php - 表格中的常用字数统计,而不仅仅是一行

performance - Lucene 搜索耗时太长

docker - Docker Volume-未处理的异常:访问被拒绝。 (来自HRESULT的异常:0x80070005(E_ACCESSDENIED))

php - 与服务相关的事件正确显示

php - 将表单数据从ajax加载的记录发送到php

elasticsearch - elasticsearch中doc_count_error_upper_bound有什么意义,如何最小化?

oracle - 更新Elasticsearch中关于向我的数据库添加新文档的索引

MySQL boolean 搜索 - 如何过滤掉所有不包含至少 2 个输入字符串的结果?

php - 显示相关内容的链接