Elasticsearch:通过多个字段中的查询字符串进行后缀搜索

时间:2018-09-10 19:19:46

标签: c# elasticsearch nest

我正在寻找一种在多个字段上执行短语搜索的方法,并且能够将星号(*)通配符用于前缀和后缀搜索。

这是我的例子:

GET /myindex/_search
{
  "query": {
    "simple_query_string" : {
      "query": "mycity mystreet mynumber",
      "default_operator": "AND", 
      "fields":     [ "city", "street", "number"]
    }
  }
}

我使用AND作为默认运算符,因为我希望在查询字符串中的每个单词都可以在指定字段的 any 中找到。

当我在三个字词的短语上方进行测试时,它会匹配三个字段中包含三个字词的记录。

我还可以使用星号执行前缀搜索,例如: myc * mystreet mynumber ,但是我也希望能够执行后缀搜索,例如 * city mystreet mynumber 。但是 simple_query_string 不支持。

当我改用 query_string 时,我可以实现我想要的后缀搜索,但是多字段搜索将像以前一样停止工作。即,必须在列出的字段之一中找到所有单词以符合条件。

最后,我需要能够使用前缀或后缀在多个字段(短语中的每个单词都必须与列出的任何字段匹配)中进行搜索。而且我需要快速搜索...有没有办法做到这一点?

0 个答案:

没有答案