ElasticSearch

时间:2016-10-24 14:28:49

标签: elasticsearch phrase

我试图使用我现有的索引(全文)按照Elastic中的短语进行精确搜索。当用户搜索,例如" Sanity Testing"时,结果应该带来所有文档" Sanity Testing" (不区分大小写),但不是"经过Sanity测试"。

我的映射:

{
  "doc": {
    "properties": {
      "file": {
        "type": "attachment",
        "path": "full",
        "fields": {
          "file": {
            "type": "string",
            "term_vector":"with_positions_offsets",
            "analyzer":"o3analyzer",
            "store": true
          },
        "title" : {"store" : "yes"},
        "date" : {"store" : "yes"},
        "keywords" : {"store" : "yes"},
        "content_type" : {"store" : "yes"},
        "content_length" : {"store" : "yes"},
        "language" : {"store" : "yes"}
        }
      }
    }
  }
}

据我所知,有一种方法可以用" raw"添加另一个索引。分析器,但由于需要搜索不区分大小写,我不确定这是否可行。而且我也不想重建索引,因为有数百台机器已经索引了大量文档,因此可能需要很长时间。

有没有办法运行这样的查询?我现在正尝试使用以下查询进行搜索:

{
  query: {
    match_phrase: {
      file: "Sanity Testing"
    }
}

它给我带来了" Sanity Testing"和#34;经过Sanity测试"。

任何帮助表示赞赏!

0 个答案:

没有答案