【问题标题】:ElasticSearch Nest AutoComplete based on words split by whitespaceElasticSearch Nest AutoComplete 基于由空格分割的单词
【发布时间】:2015-06-16 00:33:55
【问题描述】:

我有 AutoComplete 与 ElasticSearch (Nest) 一起使用,当用户从短语开头输入字母时很好,但如果可能的话,我希望能够使用专门类型的自动完成一句话。

为了进一步澄清,我的要求是能够像这样“自动完成”:

想象完整的索引字符串是“这是一些标题”。当用户输入 "th" 时,这会作为我当前代码的建议返回。

如果用户输入 "som""title" 或任何组成单词的字母(单词被分类作为两个空格之间的字符串或字符串的开头/结尾)。

我的代码是:

var result = _client.Search<ContentIndexable>(
            body => body
                        .Index(indexName)
                        .SuggestCompletion("content-suggest" + Guid.NewGuid(),
                                           descriptor =>
                                           descriptor
                                               .OnField(t => t.Title.Suffix("completion"))
                                               .Text(searchTerm)
                                               .Size(size)));

我想看看是否可以使用SuggestCompletion(而不是通过匹配查询)编写符合我要求的内容。

非常感谢,

更新: 这个问题在这里已经有了答案,但我把它留在这里,因为标题/描述可能更容易被搜索引擎搜索。

可以在此处找到此问题的正确解决方案: Elasticsearch NEST client creating multi-field fields with completion

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    @Kha 我认为最好使用NGram Tokenizer

    因此,您应该在创建映射时使用此标记器。 如果您想了解更多信息,也许可以写回一个示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多