2017-10-05 163 views
0

我想elasticsearch搜索并显示出与PHP的结果。我想使部分匹配就像是在MySQL例如:PHP elasticsearch部分匹配

$params = [ 
    'index' => 'my_index', 
    'type' => 'my_type', 
    'body' => [ 
     'query' => [ 
      'match' => [ 
       'title' => '.*abc.*' 
      ] 
     ] 
    ] 
]; 
+0

您需要以不同方式标记字段。 (东西NGRAM过滤器) 检查此链接 https://www.elastic.co/guide/en/elasticsearch/guide/current/ngrams-compound-words.html – Vigikaran

+0

发表您的指标设置中,映射更明确的答案 – Vigikaran

回答

0

我用的是“匹配”,而不是“正则表达式”

$params = [ 
    'index' => 'my_index', 
    'type' => 'my_type', 
    'body' => [ 
     'query' => [ 
      'regexp' => [ 
       'title' => '.*abc.*' 
      ] 
     ] 
    ] 
]; 

select * from table_name where title like '%abc%' 

但我不`吨的工作守则