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":[]}
您需要将字段更改为未分析或更改分析仪。理论上
\*
应找到*