【问题标题】:elasticsearch wildcard string search query with '>'带有'>'的elasticsearch通配符字符串搜索查询
【发布时间】:2016-08-15 11:21:14
【问题描述】:

我有映射为“not_analyzed”的字符串字段。 每个字符串都有'>'符号,需要用它找到一些字符串。

字符串例如)

一>二>树>四>...

通过以下查询,我可以获得预期的结果。

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“一个*” } } }

但是当在值中添加'>'时,它不是。

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“一>*” } } }

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“一>*” } } }

对此有任何想法吗?


文档样本

{ “_index”:“pm”,“_type”:“dmcase_00090”,“_id”: “AVQ7Wjht0bpb6L5Mykw7”,“_version”:1,“_score”:1,“_source”:{ "endat": "1970-01-12T06:08:00+09:00", "startat": “1970-01-06T23:02:00+09:00”,“活动序列”: "MakeTicket>FirstContact>ArrangeSurvey>MakeTicket>InformClientSurvey>ArrangeSurvey>Survey>Survey>InternRepair>RepairReady>InternRepair>SendTicketToFinAdmin>TicketReady>ReadyInformClient", “事件”:[ { ...一些事件


查询+结果

1.

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“maketicket*” } } }

结果:数据符合我的预期

2.

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“maketicket>*” } } }

结果

“命中”:{ “总计”:0, “最大分数”:空, “命中”:[] }

3.

“查询”:{ “通配符”:{ “activityseq.raw”:{ “价值”:“maketicket*” } } }

结果

“命中”:{ “总计”:0, “最大分数”:空, “命中”:[] }

4.

“查询”:{ “通配符”:{ “活动序列”:{ “价值”:“maketicket>*” } } }

结果

"caused_by": { “类型”:“json_parse_exception”, “原因”:“无法识别的字符转义 '>'(代码 62)\n 在 [Source: [B@61201912; line: 5, column: 37]” }

【问题讨论】:

  • 我已经尝试过了,上述所有查询都按预期返回了文档。您可以使用从curl -XGET localhost:9200/your_index 获得的输出更新您的问题吗(重命名your_index 以匹配您的实际索引名称)?
  • "myTable": { "properties": { "seqstring": { "type": "string", "fields": { "raw": { "type": "string", " index": "not_analyzed" } } },这是我的元数据的一部分。

标签: elasticsearch wildcard


【解决方案1】:

您的查询需要看起来像这样并且它将起作用,即您需要匹配 seqstring.raw 子字段,因为那是 not_analyzed

{
  "query": {
    "wildcard": {
      "seqstring.raw": {
        "value": "one>*"
      }
    }
  }
}

【讨论】:

  • 当我添加“.raw”时,它什么也没返回。这个平均指数没有设置为 not_analyzed?
  • activityseq(在您的问题中)和seqstring(在您的评论中)有什么区别?
  • 同一个字段,只是在这里重命名
  • 使用相同的大小写,即大小写字母必须完全匹配
  • 这个查询产生了什么? {"query": { "wildcard": { "activityseq.raw": { "value": "MakeTicket>*" } } } }
猜你喜欢
  • 2016-04-25
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
相关资源
最近更新 更多