小编Rob*_*Rob的帖子

ElasticSearch按字符串长度排序

我通过NEST c#使用ElasticSearch.我有很多关于人的信息

{
   firstName: 'Frank',
   lastName: 'Jones',
   City: 'New York'
}
Run Code Online (Sandbox Code Playgroud)

我希望能够通过lastName对这个项目列表进行过滤和排序,并按长度排序,这样,名字中只有5个字符的人将位于结果集的开头,然后是10个字符的人.

所以对于一些伪代码,我想做类似的事情 list.wildcard("j*").sort(m => lastName.length)

我是ElasticSearch的新手,所以任何例子都会非常有用.

elasticsearch sense nest

9
推荐指数
1
解决办法
3964
查看次数

Elasticsearch.net客户端无法进行基本搜索

我有一个基本的Elasticsearch查询,看起来像这样

POST /fruit/_search
{"query":{"term":{"Name":"banana"}}}
Run Code Online (Sandbox Code Playgroud)

我得到了结果,当我在意义上运行时没有问题.

所以我尝试在elasticsearch.net中这样做

var requestBody = new { query = new { term = new { Name = "banana" } } };
                var result = client.Search<string>("fruit", requestBody);
Run Code Online (Sandbox Code Playgroud)

我没有得到任何结果.如果我只有一个带有新{}的搜索主体,那么我会点击,但不会过滤.

我究竟做错了什么?

c# elasticsearch nest elasticsearch-net

5
推荐指数
1
解决办法
3826
查看次数

弹性搜索 - 使用C#在其中包含空格和特殊字符的字符串

我正在寻找ElasticSearch嵌套查询,它将使用C#在其中包含空格的字符串上提供精确匹配.

例如 - 我想搜索像'XYZ Company Solutions'这样的词.我尝试了查询字符串查询但它给了我所有的记录,无论搜索结果如何.我也读了帖子,发现我们必须为该字段添加一些映射.我在球场上尝试了'Not_Analyzed'分析仪,但它仍无法正常工作.

这是我的C#代码

var indexDefinition = new RootObjectMapping
{
  Properties = new Dictionary<PropertyNameMarker, IElasticType>(),
  Name = elastic_newindexname
};
var notAnalyzedField = new StringMapping
{
  Index = FieldIndexOption.NotAnalyzed
};
indexDefinition.Properties.Add("Name", notAnalyzedField);
objElasticClient.DeleteIndex(d => d.Index(elastic_newindexname));
var reindex = objElasticClient.Reindex<dynamic>(r => r.FromIndex(elastic_oldindexname).ToIndex(elastic_newindexname).Query(q => q.MatchAll()).Scroll("10s").CreateIndex(i => i.AddMapping<dynamic>(m => m.InitializeUsing(indexDefinition))));
ReindexObserver<dynamic> o = new ReindexObserver<dynamic>(onError: e => { });
reindex.Subscribe(o);**

**ISearchResponse<dynamic> ivals = objElasticClient.Search<dynamic>(s => s.Index(elastic_newindexname).AllTypes().Query(q => q.Term("Name","XYZ Company Solutions")));** //this gives 0 records

**ISearchResponse<dynamic> ivals1 = objElasticClient.Search<dynamic>(s => s.Index(elastic_newindexname).AllTypes().Query(q => …
Run Code Online (Sandbox Code Playgroud)

c#-4.0 elasticsearch couchbase nest

5
推荐指数
1
解决办法
1411
查看次数

在C#中引用嵌套类对象

我希望有一个包含多个嵌套类的类,这样当我创建一个新的父类时,每个嵌套类的对象都会被创建,我可以全局引用每个嵌套类中的变量.

这是我目前的代码:

public class StockChecklist
{
  public class qty1p1 { public string tag = "uniqueval23456"; public string value = ""; public string reference = ""; }
  public class qty1p2 { public string tag = "uniqueval3736"; public string value = ""; public string reference = ""; }

  public class qty2 { public string tag = "uniqueval97357"; public string value = ""; public string reference = ""; }

  public class qty3p1 { public string tag = "uniqueval88356"; public string value = ""; …

c# string nested class

5
推荐指数
1
解决办法
598
查看次数

如何在ElasticSearch中搜索多个条件

我正在使用Nest连接到ElasticSearch并执行一些查询.到目前为止,我已经能够得到我要求的结果给出一个通配符查询,如下所示:

var searchResults = _client.Search<MyIndexable>(
            body =>
            body
                .Index("someIndex")
                .Query(
                    query =>
                    query.QueryString(
                        qs => qs.
                                  OnFields(f => f.Title, f => f.Description)
                                  .Query(searchTerm + "*"))));
Run Code Online (Sandbox Code Playgroud)

但是现在我需要为我的查询添加额外的条件以用于某个用例.

我需要的不仅是查询,[searchTerm]*还有两个匹配的其他字段:

  • searchTerm +"*"
  • field1 ="some string"
  • field2 ="一些指导"

我确信必须有一种方法可以在弹性搜索(使用Nest)中执行此操作,但我无法找到它.

我知道我可以在索引中添加两个额外的字段(如someIndex_field1_field2),这对我来说绝对是一个选项,因为field1和field2是不错的分区(事实上,它可能是一个更好的选择,允许更好的分区)但我只是想看看是否有办法避免这样做,而是,如果有可能为查询添加多个条件.

有谁知道如何实现这一目标?

非常感谢,

c# elasticsearch nest

2
推荐指数
1
解决办法
1189
查看次数

Elasticsearch:创建索引时设置总字段限制

我正在努力解决 ElasticSearch 7 中的一个新问题。尝试在 Nest 库 C# 中使用自动映射创建索引时,出现“总字段限制”错误。

 await _elasticContext.GetClient().Indices.CreateAsync(indexName, c => c
                .Map<DocumentWrapper>(m => m.AutoMap()));
Run Code Online (Sandbox Code Playgroud)

问题是如何将 集成index.mapping.total_fields.limit到上面的查询中?或者替代解决方案(如果有的话)?

谢谢

elasticsearch nest elasticsearch-7

1
推荐指数
1
解决办法
1249
查看次数