首页 > 解决方案 > elasticsearch在NEST中空格字符后第一次搜索没有找到结果

问题描述

我在弹性搜索中建立索引,如下所示。但是在我做索引过程之后,当我在自动完成中搜索时,它会找到我在空格之前搜索的文本,但是我在空格字符之后按下的第一个键不执行搜索操作。当我输入第二个或第三个字符时,它会返回结果。如何使用空格字符后按的第一个字符进行搜索操作?

我将数据添加到 elasticsearch 以进行索引的代码。

 var createIndexDescriptor = new CreateIndexDescriptor(INDEX_NAME).Mappings(ms => ms.Map<GlobalCompany>(m => m.AutoMap()
                  
                    .Properties(pprops => pprops
                        .Text(ps => ps
                            .Name("Title")
                            .Analyzer("whitespace")
                            .Fielddata(true)
                            .Fields(f => f
                                .Keyword(k => k
                                    .Name("keyword")
                                )
                            )
                        )
                    )
        ));

我从我在 elasticsearch 中索引的数据中搜索到的代码。

var searchResponse = eClient.Search<GlobalCompany>(s => s.Index(INDEX_NAME)
                  .Query(q => q
                  .MultiMatch(m => m
                            .Fields(f => f
                             .Field(u => u.Title)
                             .Field(u => u.RegisterNumber))
                            .Type(TextQueryType.PhrasePrefix)
                          .Query(value))));

标签: c#elasticsearchnestelasticsearch.net

解决方案


推荐阅读