2

我已经使用以下配置在 elasticsearch 中配置了 path_analyzer。

PUT /elastic_course
{
  "settings": {
    "analysis": {
      "analyzer": {
        "path_analyzer": {
          "tokenizer": "path_tokenizer"
        },
        "reverse_path_analyzer": {
          "tokenizer": "path_tokenizer"
        }
      },
      "tokenizer": {
        "path_tokenizer": {
          "type": "path_hierarchy",
          "delimiter": "/",
          "replacement": "-"
        },
        "reverse_path_tokenizer": {
          "type": "path_hierarchy",
          "delimiter": "/",
          "replacement": "-"
        }
      }
    }
  },
  "mappings": {
    "book" : {
        "properties": {
           "author": {
              "type": "string",
              "index": "not_analyzed"
           },
           "genre": {
              "type": "string",
              "index": "not_analyzed"
           },
           "score": {
              "type": "double"
           },
           "synopsis": {
              "type": "string",
              "index":"analyzed",
              "analyzer":"english"
           },
           "title": {
              "type": "string"
           },
           "path":{
              "type":"string",
              "analyzer":"path_analyzer",
              "fields": {
                "reverse": {
                  "type":"string",
                  "analyzer":"reverse_path_analyzer"
                }
              }
          }
      }
    }
  }
}

现在我插入了四个文件,其中路径值为:

  • /角度/结构
  • /角度/结构/指令
  • /角度/结构/组件
  • /角度/物流

现在我想查询我的索引,例如:

  1. 它将仅检索structural.
  2. 它将返回所有叶节点components,即directiveslogistics

我尝试在查询下运行,但它检索了所有记录。

POST elastic_course/book/_search
{
  "query": {
    "regexp": {
      "path.":"/structural"
    }
  }
}

有什么帮助吗?

谢谢。

4

0 回答 0