【问题标题】:Use * (asterix) as a term query in Elastic search在 Elasticsearch 中使用 *(星号)作为术语查询
【发布时间】:2015-05-03 21:19:04
【问题描述】:

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

然而,当我构造一个术语查询时,它没有返回任何结果。如何查询带有“*”标签的文档。我猜这是一个需要转义的特殊字符。

更新答案

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

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

【问题讨论】:

  • 理论上\*应该能找到*

标签: php elasticsearch lucene


【解决方案1】:

如果分析了您的 tag 字段,则星号不会被编入索引。自己看:

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

回复:

{"tokens":[]}

您需要将字段更改为 not_analyzed 或更改分析器。

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    • 2019-12-06
    相关资源
    最近更新 更多