弹性搜索小写分析器不返回搜索结果 [英] Elastic Search Lowercase analyser does not return search result

查看:0
本文介绍了弹性搜索小写分析器不返回搜索结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个基于文本的索引,如下所示。我正在尝试维护基于用户输入的令牌的精确搜索和模糊搜索。虽然基于文本的搜索可以很好地工作(部分搜索),但当涉及到术语搜索时,如果大小写相同,它将返回数据。 我确实尝试添加了基于小写筛选器的分析器,但无济于事。我能在这里做些什么?

映射:

"project_title": {
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      }
    }
  },
  "projectabstract": {
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      }
    }
  },

基于小写分析器的新索引:

PUT /project_term_search_text_analyzer
{
  "settings": {
    "analysis": {
      "analyzer": {
        "rebuilt_standard": {
          "tokenizer": "standard",
          "filter": [
            "lowercase"       
          ]
        }
      }
    }
  },
  "mappings": {"project_title": {
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      }
    }
  },
  "projectabstract": {
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      }
    }
  },}

我应该如何更新我的索引才能在这两种情况下工作。

推荐答案

您需要使用normalizer,它作用于关键字字段。你也可以像分析器一样定制你的规格化器,在链接中你可以找到相关的例子和小写过滤器,这将解决你的问题。

这篇关于弹性搜索小写分析器不返回搜索结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆