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