[英]Elasticsearch NEST and Count with Wildcards
我有ES和嵌套工作,并且搜索适用于通配符。 我想对记录数进行计数,我所看到的计数允许进行完全匹配,但是我想要一个“ like”匹配(在sql中-作为类比)。 下面的代码不返回任何内容。 有任何想法吗?
var searchDataCount = client.Count<SearchRow>(s => s.Index("myindex").AllTypes().
Query(q => q.QueryString(qs => qs.OnFields(j => j.searchstring).Query(@searchString))));
var searchDataResults = client.Search<SearchRow>(s =>s.Index("myindex").AllTypes().
From(startcount).Size(recordsize). Query(q => q.
QueryString(qs => qs.OnFields(j => j.searchstring).Query(@searchString))));
可能您可以使用相同的查询模块来执行与sql中的LIKE查询类似的搜索,方法是在搜索查询中添加“ *”
例:
如果您要在sql中将字符串搜索为“ data%”,则可以在Elastcisearch中进行如下查询
var searchDataResults = client
.Search<SearchRow>(s => s.Index("myindex")
.AllTypes()
.From(startcount)
.Size(recordsize)
.Query(q => q
.QueryString(qs => qs
.OnFields(j => j.searchstring)
.Query("data*"))));
类似情况:sql => Elasticsearch
data% => data*
%data => *data
%data% => *data*
解决方案是在默认索引中使用不同的索引。 这是给我想法的帖子-https: //github.com/elastic/elasticsearch-net/issues/1404 。 实际代码-
settings = new ConnectionSettings(node, defaultIndex: "myindex");
匹配client.count查询中的索引所需的默认索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.