我在ElasticSearch中有以下字段:
"type": "doc\doc1"
我的目标是选择一种特殊类型,我尝试过:
GET /my_index/my_type/_search
{
"query":{
"bool":{
"must":{
"term":{
"type": "doc\\doc1"
}
}
}
}
}
但它没有用,我试过了:
"type": "doc\\\\doc1"
"type": "\"doc\\\\doc1"\"
"type": "\"doc\\doc1"\"
但查询没有返回任何结果。
我尝试过:
GET /my_index/my_type/_search
{
"query" : {
"query_string" : {
"query" : "doc\\doc1",
"analyzer": "keyword"
}
}
}
但它的输出相同。
非常感谢任何帮助
谢谢!
答案 0 :(得分:0)
您需要在字段值中转义反斜杠。
然后,您可以使用带有术语查询的关键字分析器搜索确切的值,或者您可以将匹配查询与分析值一起使用:
PUT test
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"type1": {
"properties": {
"field1": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}
}
}
PUT test/type1/1
{
"field1" : "doc\\doc1"
}
POST test/_search?pretty
{
"query": {
"bool": {
"must": {
"term": {
"field1.raw": "doc\\doc1"
}
}
}
}
}
POST test/_search?pretty
{
"query": {
"bool": {
"must": {
"match": {
"field1": "doc\\doc1"
}
}
}
}
}