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")
));
그리고 객체는이 같은 색인 모양이야 : 여기 내 설정 내가 필드 JATitle 및 JABody는 동의어로 정렬 할 얻으려고
[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; }
}
합니다.
모든 아이디어가 환영받을 것입니다.
덕분에, ScrappyT
NEST 및 elasticsearch의 어떤 버전을 사용하십니까? – Rob
안녕, 롭, 지연에 사과, 나는 연가에 있었어. Nest와 ElasticSeach에 대한 DLL은 1.4.2 버전입니다. ElasticSearch 노드 자체는 1.7.5를 실행합니다. - 감사합니다. ScrappyT – ScrappyTexas