0
Nest APIを使用してElasticで動作するように同義語を取得するのに本当に問題があります。Nest経由でElasticsearchでシノニムを使用する
インデックスと適切な設定をすべてセットアップしましたが、シノニムとなる用語に基づいてクエリを実行すると、まったく適用されていないように結果が表示されます。ここに私のセットはアップしている:
m_objNode = new Uri(Properties.Settings.Default.strLocalElasticSearchURL);
m_objConnectionSettings = new ConnectionSettings(m_objNode, defaultIndex: "myIndex");
m_objElasticClient = new ElasticClient(m_objConnectionSettings);
IndexSettings indexSettings = new IndexSettings();
indexSettings.NumberOfReplicas = 1;
indexSettings.NumberOfShards = 1;
CustomAnalyzer exclamation = new CustomAnalyzer();
exclamation.Tokenizer = "exclamationTokenizer";
indexSettings.Analysis.Tokenizers.Add("exclamationTokenizer", new PatternTokenizer {
Pattern = @"!"
});
indexSettings.Analysis.Analyzers.Add("exclamation", exclamation);
indexSettings.Analysis.TokenFilters.Add("synonym", new SynonymTokenFilter { Synonyms = new[] { "tire => tyre", "aluminum => aluminium" }, IgnoreCase = true, Tokenizer = "whitespace" });
m_objElasticClient.CreateIndex(c => c
.Index("myIndex")
.InitializeUsing(indexSettings)
.AddMapping<myClass>(m => m
.MapFromAttributes()
.IndexAnalyzer("english")
.SearchAnalyzer("english")
));
そして、私は、インデックスは次のようになりだオブジェクト:
[ElasticType(IdProperty = "JAUniqueKey")]
public class myClass {
public string JAUniqueKey { get; set; }
public int JAItemID { get; set; }
public string JATitle { get; set; }
public string JABody { get; set; }
}
私は同義語で整列するフィールドJATitleとJABodyを取得しようとしています。
どのようなアイデアも歓迎します。
おかげで、 ScrappyT
NESTとelasticsearchのどのバージョンをお使いですか? – Rob
こんにちは、ロブ、遅れて申し訳ありません、私は年中休暇をしています。私がNestとElasticSeachに持っているDLLはバージョン1.4.2です - ElasticSearchノード自体は1.7.5を実行しています - Thanks、ScrappyT – ScrappyTexas