当前位置: 首页 > 知识库问答 >
问题:

弹性搜索的映射 匹配查询

司徒斌
2023-03-14

匹配查询用于实现以下情况的映射是什么

  • 不区分大小写的搜索
  • 数字搜索
  • 特殊字符搜索
  • 单字符搜索

>

  • 我尝试使用通配符,但id不支持区分大小写

    尝试使用小写规范化器匹配查询,它不支持特殊字符和单字符搜索

    已尝试使用 ngram 匹配查询,但它不支持特殊字符和数字搜索。

    PUT index_v14
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "skm_analyzer": {
              "tokenizer": "skm_tokenizer"
            }
          },
          "tokenizer": {
            "skm_tokenizer": {
              "type": "ngram",
              "token_chars": [
                "letter",
                "digit",
                "punctuation",
                "symbol",
                "custom",
              ]
              "custom_token_chars": "/@[]-"
            }
          }
        }
      },
    "mappings": {
      "title" : {
              "type" : "text",
              "analyzer" : "skm_analyzer",
              "search_analyzer" : "autocomplete_search"
            },
    }
    
    
    GET index_v14/_search
    {
      "query": {
        "match": {
          "title":{
            "query":"[watch]: hello/stars",
            "operator":"and"
          }
          
        }
      }
    }
    

    任何人都可以帮助我的映射来支持上面提到的所有情况,无论是类型文本还是类型关键字都很好

  • 共有1个答案

    裴兴言
    2023-03-14

    您需要自定义分析器,它以满足您所有需求的格式标记输入< code >字符串。

    ngram标记器、小写标记过滤器和映射charfilter是您在自定义分析器中需要的几个构件。

     类似资料:
    • 我希望与字段中的字符串完全匹配,然后返回一天,提取所有此类记录。我所使用的json似乎也与简单的单词相匹配。我不确定我哪里出了问题。我需要向这个查询JSON添加吗?我目前拥有的JSON如下所示:

    • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

    • 我有一个设计糟糕的文档结构: 我想从上面的文档中检索标题、Fach和代码。 多谢了。

    • 我正在尝试使用C#使用Nest进行匹配查询。Match查询不会返回任何结果,因为生成的JSON的语法似乎不正确,我确信有一些文档包含此关键字。下面是C代码片段 这将生成以下查询: 但是,当我在Kibana控制台Get\u search中调整同一查询时,该查询返回0个结果 我得到搜索词的结果。请注意,Kibana查询的语法中缺少“第二个查询标记”。 我确实检查了文档,似乎我的语法是正确的https:

    • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

    • 我不知道如何通过MatchPhrasePrefix搜索索引中的文档。我想匹配整个搜索词短语,但允许在最后一个词上加前缀。 这个LINQ建筑给了我1.0分的一切。我将如何构建这个?另一方面,是否可以查看NEST正在构建的原始查询?那将非常有帮助!