elasticsearch - Elasticsearch 查询中的空格问题

标签 elasticsearch

我在请求 fileds 时遇到问题,在带空格的字段上发出请求。映射看起来像这样:

"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"
}

最佳答案

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

关于elasticsearch - Elasticsearch 查询中的空格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23942143/

相关文章:

elasticsearch - 如何在弹性脚本中使用特殊文档字段?

json - ElasticSearch JSON期望

json - Node.js:从Elasticsearch查询中解析JSON对象

elasticsearch - 使用multi_match的查询未获得预期的顺序

apache-spark - Scripted_upsert与Elasticsearch-hadoop不可能吗?

elasticsearch - 在Kibana可视化中编写动态Elasticsearch查询的脚本?

java - 如何在elasticsearch中创建索引,以便每天上传数据时创建一个带有日期的新索引别名并允许我删除它们

JsonReaderException 为elasticsearch创建批量索引

java - Elasticsearch 轮询的替代方案

elasticsearch - 弹性观察者电子邮件中的日期数学