如果我有逗号分隔的字符串,如何过滤值

时间:2019-06-18 09:24:29

标签: c# elasticsearch nest

我有一个索引,其中有一个属性名称JobProvince,我需要过滤记录。我有一个字符串

string str = "Friesland,Gelderland"

我正在寻找JobProvince是“ Gelderland”的记录,并且正在尝试处理

q.MatchPhrase(c => c.Field(p => p.JobProvincie) .Query(nq => nq.Terms(t => t.Field(tf => tf.JobProvincie.First()).Terms(JobProvinciefacets.Split(',')))))

但没有得到结果。我该怎么办,请帮忙。

2 个答案:

答案 0 :(得分:0)

Either convert comma separated values to array while indexing or use comma tokenizer while indexing, post it you will be able to search document using normal term fields

"settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "pattern",
          "pattern": ","
        }
      }
    }
  }

逗号令牌生成器link供参考

答案 1 :(得分:0)

我通过使用得到答案

q.MatchPhrase(a => a.Field(af => af.JobCity).Query(searchLocationLowerCase))