Elastic Search 小写分析器没有 return 搜索结果

Elastic Search Lowercase analyser does not return search result

我有一个基于文本的索引,如下所示。我正在尝试基于用户输入的令牌维护精确搜索和模糊搜索。虽然基于文本的搜索在术语搜索方面工作正常(部分搜索),但它 returns 数据 iff 大小写相同。 我确实尝试添加一个基于小写过滤器的分析器,但它没有帮助。我可以在这里做什么?

映射:

"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。您还可以自定义规范器,例如分析器,在 link 中您可以找到带有小写过滤器的相关示例,这将解决您的问题。