【发布时间】:2015-03-11 21:27:29
【问题描述】:
我正在运行一个应用程序,主要是创建一个 URL 缩短器,当我设置大小写的“shorurl”时,我无法通过查询或过滤器找到它。然而,对于其他更简单的领域,它工作得很好。我尝试在它上面做小写,不确定如何匹配。
这是字段定义:
[ElasticProperty(Name = "shorturl", IncludeInAll = true)]
public string ShortUrl { get; set; }
这是一个例子:
string url = "http://test.com/JjdWtPoV";
FilterContainer filter = new FilterContainer();
filter = Filter<Data>.Term("shorturl", url);
var results = this.Client.Search<Data>(s => s
.Filter(filter)
);
QueryContainer q = new QueryContainer();
q = Query<Data>.Term("shorturl", url);
results = this.Client.Search<Data>(s => s
.Query(q)
);
results = this.Client.Search<Data>(s => s
.Query(f => f.Term(p=> p.ShortUrl, url))
);
我应该注意以下是我正在使用的版本:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Elasticsearch.Net" version="1.3.1" targetFramework="net45" />
<package id="NEST" version="1.3.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.1" targetFramework="net45" />
</packages>
找到答案 需要确保一个字符串设置了“NOT ANALYZED”
[ElasticProperty(Name = "shorturl", IncludeInAll = true,
Index=FieldIndexOption.NotAnalyzed)]
public string ShortUrl { get; set; }
【问题讨论】:
标签: c# .net elasticsearch nest