Elasticsearch使用条件中的字符串列表进行查询。 Nest 5.x

时间:2016-11-23 15:10:00

标签: c# elasticsearch nest

我正在使用Elasticsearch 5.0.1,我在.NET 4.5.2下运行我的代码。我正在使用NEST 5.0 rc lib。

我有一个包含字符串列表的类。

public List<string> LastPagesViewed { get; set; }

我正在使用AutoMap映射该clase,如下所示:

.Mappings(m => m.Map<VisitorTest>(map => map.AutoMap()))

我想要做的是在&#39; LastPagesViewed&#39;上查询包含一个或多个网址的所有文档。属性。

我正在进行这样的搜索:

.Query(q => q
.Terms(c => c
    .Name("named_query")
    .Field(p => p.LastPagesViewed)
    .Terms(new List<string> { "url1", "url2" }))

但它不起作用。我还试图只搜索部分网址,例如&#34; google&#34; (如果网址为http://www.google.com)但结果相同。

我用一个int(而不是url)列表尝试了这个并且它正在工作,所以我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

终于搞定了!问题是我在使用术语搜索时没有考虑分析器的影响。一旦我更改查询以使用匹配,它就会按预期工作。

新查询将如下:

.Query(q => q.Match(mq => mq.Field(p => p.LastPagesViewed.First()).Query("http://www.google.com")))