【问题标题】:results containing synonym terms not returned from Nest包含未从 Nest 返回的同义词的结果
【发布时间】:2014-12-12 23:38:48
【问题描述】:

我们正在尝试让我们的弹性搜索索引返回一个找到同义词的结果集

 var synonyms = new List<string> { "egg , embryo"};
        var indexSettings = new IndexSettings();
       // <snip>
        indexSettings.Analysis.TokenFilters.Add("synonym",
                                                new SynonymTokenFilter
                                                {
                                                    Synonyms = synonyms,
                                                    Expand = false,
                                                    IgnoreCase = true,
                                                });

我们通过 Elastic Search Head 查看索引元数据,检查了已创建的索引是否包含我们的同义词列表。 一个示例同义词条目如下所示; “鸡蛋,胚胎” 然而,当我们做一个简单的查询时,我们没有得到任何结果

return ElasticClient.Search(s => s
            .Query(q => q
                 .QueryString(qs => qs
                     .Query("egg")
                 )
             )
        );

我们的实体看起来像这样(显示相关属性)

[ElasticType(Name = "Entry", IdProperty = "Id")]
public class Entry
{
        public int Id { get; set; }
        public string Title { get; set; }
}

我们有一个标题为“胚胎”的索引条目。我们尝试使用“=>”语法,并将 Expand 的各种排列设置为 true 和 false。

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    您已成功注册名为“同义词”的新分析器,但仍需要将其应用到要设置同义词分析器的属性

    https://github.com/elasticsearch/elasticsearch-net/blob/master/src/Tests/Nest.Tests.Integration/Indices/Analysis/Analyzers/AnalyzerTests.cs

    为此进行了各种集成测试。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多