elasticsearch,lucene,Php,elasticsearch,Lucene" /> elasticsearch,lucene,Php,elasticsearch,Lucene" />

Php 在弹性搜索中使用*(asterix)作为术语查询

Php 在弹性搜索中使用*(asterix)作为术语查询,php,elasticsearch,lucene,Php,elasticsearch,Lucene,我有一个标签为“*”的文档 然而,当我构造一个术语查询时,它不会返回任何结果。如何查询带有“*”标记的文档。我猜这是一个需要逃逸的特殊角色 用答案更新 我需要将属性设置为“未分析”,以便弹性搜索不会删除标点符号等 $myTypeMapping = array( '_source' => array( 'enabled' => true ), 'properties' => array( 'tag' => array(

我有一个标签为“*”的文档

然而,当我构造一个术语查询时,它不会返回任何结果。如何查询带有“*”标记的文档。我猜这是一个需要逃逸的特殊角色

用答案更新

我需要将属性设置为“未分析”,以便弹性搜索不会删除标点符号等

$myTypeMapping = array(
    '_source' => array(
        'enabled' => true
    ),
    'properties' => array(
        'tag' => array("type" => "string", "index" => "not_analyzed")
    )
);
$indexParams['body']['mappings']['file'] = $myTypeMapping;

如果分析了
标记
字段,则不会对星号进行索引。你自己看看:

curl -XGET 'localhost:9200/_analyze?analyzer=standard' -d '*'
答复:

{"tokens":[]}

您需要将字段更改为未分析或更改分析仪。

理论上
\*
应找到
*