如何使用elasticsearch php进行部分字符串搜索

时间:2015-04-06 19:37:26

标签: php elasticsearch

我正在尝试使用elasticsearch来允许我使用php client library搜索部分字符串。

我有一个像这样的剧本

// create an index
$params = array();
$params['body']  = array('testField' => 'abc');
$params['index'] = 'my_index';
$params['type']  = 'my_type';
$params['id']    = 'my_id';
$ret = $client->index($params);

// search for that index
$searchParams['index'] = 'my_index';
$searchParams['type']  = 'my_type';
$searchParams['body']['query']['match']['testField'] = 'abc';
$queryResponse = $client->search($searchParams); // contains the indexed `abc` testField

这很有效,我能够找到刚刚创建的东西。

但是,当我更换

$searchParams['body']['query']['match']['testField'] = 'abc';

$searchParams['body']['query']['match']['testField'] = 'a';

$searchParams['body']['query']['match']['testField'] = 'a*';

搜索返回零结果。

我是否需要设置一些配置以允许部分字符串搜索?

1 个答案:

答案 0 :(得分:1)

我在处理单独的stackoverflow问题时解决了这个问题,我问here。工作脚本就在那里。

感谢@ sloan-ahrens给我指导这个