Elasticsearch NEST和带通配符的计数

时间:2016-02-13 09:24:10

标签: .net elasticsearch nest

我有ES和嵌套工作,搜索适用于外卡。我想计算记录的数量和我看到的计数是否允许完全匹配但我想要一个“喜欢”的匹配(在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))));

2 个答案:

答案 0 :(得分:0)

可能你可以使用相同的查询模块通过添加&#34; *&#34;来执行类似于sql中的LIKE查询的搜索。在搜索查询中

示例:

如果您要搜索字符串为&#39;数据%&#39;在sql中,可以在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 =&gt; Elasticsearch

data% => data*
%data => *data
%data% => *data*

答案 1 :(得分:0)

解决方案在默认索引中是另一个。这是帖子,它给了我这个想法 - https://github.com/elastic/elasticsearch-net/issues/1404。实际代码 -

 settings = new ConnectionSettings(node, defaultIndex: "myindex");

与client.count查询中的索引匹配所需的默认索引。