【问题标题】:Trouble with spaces in query to elasticsearhelasticsearch查询中的空格问题
【发布时间】:2014-05-29 20:15:22
【问题描述】:

我在请求文件时遇到问题,在带有空格的字段上提出请求。映射如下所示:

"myIndexName": {
    "mappings": {
        "myType": {
            "properties": {
                "myPropertyWithSpaces": {
                    "type": "string",
                    "analyzer": "analyzer_keyword"
                }
            }
        }
    }
}

“analyzer_keyword”是带有关键字标记器和小写过滤器的自定义分析器。 当我使用“analyzer_keyword”分析器发送“_analyze”请求并像“firstWord secondWord”这样的查询时,我只得到令牌“firstword secondword” - 一切都按预期工作。但是,如果我不将空格字符更改为“?”,则查询字符串请求不会返回任何内容。通配符;有趣的是,如果我告诉 elasticsearch 明确使用这个“analyzer_keyword”,那么小写仍然有效,并且这种行为不会改变。

"query": {
"query_string": {
    "query": "firstWord secondWord",
    "default_field": "myPropertyWithSpaces",
    "analyzer": "analyzer_keyword"
}

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    在简单的转义空格字符中找到解决方案为“\”。正常工作并防止 queryString 处理器注入任何“AND OR”运算符或其他任何东西。

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2014-10-21
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多