0

我正在使用 ElasticSearch(与轮胎宝石)。我有以下查询将匹配escaped cat,escaped black cat等。

我想知道,是否可以要求 ElasticSearch 使用以下条件进行搜索:

  1. “转义 [恰好 0 或 1 个字] 猫” 即)escaped \w{0,1} cat
  2. “转义 [n 字] 猫” 即)escaped \w{n} cat
  3. “转义[此处的正则表达式]猫”即)escaped (big|black|white) cat

当前搜索查询:

{
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "query": "\"escaped ? cat\"",
            "analyzer": "snowball"
          }
        },
        {
          "query_string": {
            "query": "\"escaped ? cat\"",
            "default_operator": "and"
          }
        },
        {
          "flt_field": {
            "content": {
              "like_text": "\"escaped ? cat\""
            }
          }
        },
        {
          "mlt_field": {
            "content": {
              "like_text": "\"escaped ? cat\""
            }
          }
        }
      ]
    }
  }
}
4

1 回答 1

0

我认为可以使用 Elasticsearch 的regexp query

{
    "regexp":{
        "name.first": "s.*y"
    }
}

还有一个正则表达式过滤器

于 2013-09-12T01:17:50.723 回答