您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

elasticsearch查询字符串不按单词部分搜索

elasticsearch查询字符串不按单词部分搜索

这是因为您的title字段可能已由标准分析器(认设置)进行了分析,并且标题Cor Interface Monitoring已被标记为三个标记corinterface并且monitoring

为了搜索单词的任何子串,您需要创建一个自定义分析器,该分析器利用ngram令牌过滤器来索引每个令牌的所有子串。

您可以这样创建索引:

curl -XPUT localhost:9200/process_test_3 -d '{
  "settings": {
    "analysis": {
      "analyzer": {
        "substring_analyzer": {
          "tokenizer": "standard",
          "filter": ["lowercase", "substring"]
        }
      },
      "filter": {
        "substring": {
          "type": "nGram",
          "min_gram": 2,
          "max_gram": 15
        }
      }
    }
  },
  "mappings": {
    "14": {
      "properties": {
        "title": {
          "type": "string",
          "analyzer": "substring_analyzer"
        }
      }
    }
  }
}'

然后,您可以重新索引数据。这将使标题Cor Interface Monitoring现在标记为:

让你的第二个搜索查询现在将返回你所期望,因为令牌的文件corinter现在相匹配。

其他 2022/1/1 18:15:51 有567人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶