Ich suche ElasticSearch Nest Abfrage, die genaue Übereinstimmung für Zeichenfolge mit Leerzeichen in es mit C# bieten wird.Elastic Search-Suche Zeichenfolge mit Leerzeichen und Sonderzeichen in es mit C#
zum Beispiel - Ich möchte nach einem Wort wie 'XYZ Company Solutions' suchen. Ich habe Querystring Abfrage versucht, aber es gibt mir alle Datensätze unabhängig vom Suchergebnis. Auch ich las auf dem Post und fand, dass wir einige Abbildungen für das Feld hinzufügen müssen. Ich habe 'Not_Analyzed' Analysator auf dem Feld versucht, aber es hat immer noch nicht funktioniert.
Hier ist mein Code von C#
var indexDefinition = new RootObjectMapping
{
Properties = new Dictionary<PropertyNameMarker, IElasticType>(),
Name = elastic_newindexname
};
var notAnalyzedField = new StringMapping
{
Index = FieldIndexOption.NotAnalyzed
};
indexDefinition.Properties.Add("Name", notAnalyzedField);
objElasticClient.DeleteIndex(d => d.Index(elastic_newindexname));
var reindex = objElasticClient.Reindex<dynamic>(r => r.FromIndex(elastic_oldindexname).ToIndex(elastic_newindexname).Query(q => q.MatchAll()).Scroll("10s").CreateIndex(i => i.AddMapping<dynamic>(m => m.InitializeUsing(indexDefinition))));
ReindexObserver<dynamic> o = new ReindexObserver<dynamic>(onError: e => { });
reindex.Subscribe(o);**
**ISearchResponse<dynamic> ivals = objElasticClient.Search<dynamic>(s => s.Index(elastic_newindexname).AllTypes().Query(q => q.Term("Name","XYZ Company Solutions")));** //this gives 0 records
**ISearchResponse<dynamic> ivals1 = objElasticClient.Search<dynamic>(s => s.Index(elastic_newindexname).AllTypes().Query(q => q.Term(u => u.OnField("Name").Value("XYZ Company Solutions"))));** //this gives 0 records
**ISearchResponse<dynamic> ivals = objElasticClient.Search<dynamic>(s => s.Index(elastic_newindexname).AllTypes().Query(@"Name = 'XYZ Company Solutions'"));** //this gives all records having fields value starting with "XYZ"
Wenn jemand komplettes Beispiel oder Schritte in C#, dann können Sie bitte mit mir teilen?
Können Sie auch Ihr Indexschema bereitzustellen, die auf Elasticsearch erstellt zu werden? curl -XGET localhost: 9200/name_des_index? pretty = true Um die genaue Zeichenfolge zu finden, müssen Sie sicherstellen, dass Sie sie nicht während der Indizierung analysieren. –