Elasticsearch通配符多个领域

问题描述:

我有,我想,以配合两个领域中的至少一个部分字符串s,作为一个子字符串(小号)匹配上。因此,举例来说,如果我有串456,我想搜索其中两个指定字段中的至少一个,存在456.所以,如果FIELD1有1234567,它会匹配,或者如果有域2的34567字符串的任何条目,它会匹配。下面是我试图做到这一点至今的方式之一,但没有运气。Elasticsearch通配符多个领域

query: { 
    bool: { 
    should: { wildcard: { field1: "*" + input + "*"}}, 
    should: { wildcard: { field1: "*" + input + "*"}} 
    } 
} 

我也曾尝试

query: { 
    query_string: "*" + input + "*", 
    fields: ["field1", "field2"] 
} 
+0

你可以分享你的索引映射? –

我想你需要的是:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "wildcard": { 
      "field1": "*"+"input"+"*" 
      } 
     }, 
     { 
      "wildcard": { 
      "field2": "*"+"input"+"*" 
      } 
     } 
     ] 
    } 
    } 
} 
+0

这个工作!非常感谢 – AGDW