【发布时间】:2018-02-15 01:37:21
【问题描述】:
如果这是一个基本问题,我提前道歉 - 我对 ElasticSearch 非常陌生,需要接受很多内容。
目前,我正在尝试实现一个基本的关键字搜索来搜索所有索引列,但我得到了一些带有特定字段 Year 的奇怪结果。我有一定数量的文件,我知道应该从结果中返回,如果我搜索“2014”,所有文件都会成功返回。如果我只搜索“14”,什么都不会返回,如果我添加一个通配符(例如*14),那么我会得到一个结果,因为它没有使用Year搜索,而是从Description 字段中提取它。
我 100% 肯定这是我在查询结构上做错了,所以有什么提示吗?顺便说一句,如果有人可以提供建议的地方来通过 NEST 了解更多关于 Elastic 的信息,那将非常有帮助。他们的文档有些欠缺,您必须了解如何使用 Elastic 才能理解其中的大部分内容,因为我不知道,所以我只能磕磕绊绊。
这是ElasticListing的结构:
public long Id { get; set; }
public string Brand { get; set; }
public string Manufacturer { get; set; }
public string ActiveTags { get; set; }
public string Description { get; set; }
public int Year { get; set; }
public string Location { get; set; }
我在 NEST 中使用的搜索结构是这样的,其中 keyword 将是“2014”(无引号):
var response = this.ElasticClient.Search<ElasticListing>(s => s
.AllTypes()
.Query(query => query
.Bool(b => b
.Must(must => must
.QueryString(qs => qs.Query(keyword))
)
)
)
.Size(pageSize)
.Explain()
);
【问题讨论】:
标签: elasticsearch nest