【问题标题】:Elasticsearch wildcard query string with fuzziness具有模糊性的 Elasticsearch 通配符查询字符串
【发布时间】:2015-07-19 20:48:54
【问题描述】:

我们有一个项目索引,我正在尝试对项目名称进行模糊通配符。 查询

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "must": {
        "query_string": {
          "fields": [
            "name.suggest"
          ],
          "query": "avacado*",
          "fuzziness": 0.7
        }
      }
    }
  }
}

索引中的字段和起作用的分析器 "

suggest_analyzer":{
    "type": "custom",
    "tokenizer": "standard",
    "filter": ["standard", "lowercase", "shingle", "punctuation"]
  }


"punctuation" : {
    "type" : "word_delimiter",
    "preserve_original": "true"
  }



"name": {
    "fields": {
      "name": {
        "type": "string",
        "analyzer": "stem"
      },
      "suggest":{ 
        "type": "string", 
        "analyzer": "suggest_analyzer"
      },
      "untouched": {
        "include_in_all": false,
        "index": "not_analyzed",
        "index_options": "docs",
        "omit_norms": true,
        "type": "string"
      },
      "untouched_lowercase": {
        "type": "string", 
        "index_analyzer": "lowercase",
        "search_analyzer": "lowercase"
      }
    },
    "type": "multi_field"
  },

问题是这样的

名称为“Avocado Test”的项目将匹配以下项目

  • 鳄梨*
  • avo*
  • 鳄梨

但匹配失败

  • 鳄梨*
  • ava*
  • ava~2

我似乎无法使用通配符进行模糊处理,它似乎是模糊工作或通配符工作,但不是组合。

es版本是1.3.1

请注意,我的查询已简化,我们还有其他过滤正在进行,但我将其归结为仅查询以消除结果中的任何歧义。我尝试使用建议功能,但它们不允许我们需要的过滤级别。

是否有任何其他方法可以处理建议/预先输入样式搜索并模糊地捕捉拼写错误?

【问题讨论】:

  • 看起来您正在寻找的是“模糊预输入”,您也许可以通过 completion suggester 实现此目的
  • this answer 对您有帮助吗?
  • @keety 如果我们不需要进行任何过滤,完成建议会有所帮助。因为每个执行预输入的用户都可以通过 meta_tagging 系统和其他过滤器获取索引中文档的特定子集。我们还有一些规则规定物品不能有标签 x,所以我们必须否定哪些条件还不允许
  • @SloanAhrens 这看起来很有希望。我会在星期一玩这个
  • 对于其他人来说,stackoverflow.com/questions/29712954/… 工作得很好

标签: search elasticsearch wildcard


【解决方案1】:

您可以尝试 EdgeNgramTokenFilter,在应用于所需字段的分析器上使用它并对其进行模糊搜索。

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 2016-08-15
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2016-06-02
    相关资源
    最近更新 更多