ElasticSearch匹配查询问题

时间:2018-09-02 08:06:09

标签: elasticsearch nest

美好的一天:

我有一个字符串字段,我正在针对以下项进行匹配查询:

{
  query : {
    match: {
       "grounds": "one"
    } 
  }
}

当我执行此查询时,它可以工作,但是,如果我输入

{
      query : {
        match: {
           "grounds": "one vote"
        } 
      }
    }

它不返回任何值。请记住,为grounds编制索引的是一个。我对ElasticSearch的工作方式的理解是,它将在查询期间标记每个单词,并与逆索引匹配。如果我错了,请指教。

已更新

我对地面的映射定义是:

"grounds": {
                "type": "text",
                "analyzer": "synonym_analyzer"
              },

我如何定义自定义synonym_analyzer是这样的:

 client.CreateIndex(index, c => c
               .Settings(s => s.Analysis(
                   a => a.Analyzers(an => an
                                .Custom("synonym_analyzer", ca => ca
                                    .Tokenizer("standard")
                                    .Filters("synonym","lowercase")
                                )
                            ).TokenFilters(t => t.Synonym("synonym", ss => synonyms))

谢谢。

0 个答案:

没有答案