Forum » Programiranje » Elastic Search iskanje preko NEST ne vrne vedno rezultatov
Elastic Search iskanje preko NEST ne vrne vedno rezultatov
Lostje ::
Zdravo,
programiram .NET aplikacijo, ki komunicira z Elastic Search. Uporabil sem ES river, da sem podatke pretočil iz MSSQL strežnika v ES in jih poindeksiral.
Zapis v ES zgleda takole:
Za dostop do indeksiranih podatkov uporabljam NEST API.
Imam problem, da ko ES vprašam po določeni vrednosti fielda (npr. Place="London"), mi ta ne vrne nobenega rezultata, čeprav bi ga moral (sem poskusil preko Chrome plugina Sense).
Zadeva je nenavadna, saj ko vprašam po fieldih, kot so npr. title, songID ali archiveSongNumber zadeva deluje brez težav in vrne rezultate, če pa vprašam po fieldih, kot sta npr. Place ali Year, pa ne vrne nobenih rezultatov, pa čeprav bi jih moral.
Query po fieldu zgleda takole:
Mapping zgleda takole:
River s katerim zajamem podatke iz MSSQL zgleda takole:
ES Client konfiguracija zgleda takole:
Zdi se mi, da se ob indexiranju ustvarijo napačni inverted indexi, vendar tega ne znam odpravit. Ima kdo kakšno idejo kako rešit takšno obnašanje oz. kaj delam narobe?
programiram .NET aplikacijo, ki komunicira z Elastic Search. Uporabil sem ES river, da sem podatke pretočil iz MSSQL strežnika v ES in jih poindeksiral.
Zapis v ES zgleda takole:
{ "_index": "musicstore", "_type": "songs", "_id": "J2k-NjXjRa-mgWKAq0RMlw", "_score": 1, "_source": { "songID": 42, "tempo": "andante", "metrum": "3/4 E8", "intonation": "F", "title": "Song", "archiveSongNumber": "3684", "Year": 2000, "Place": "London" } },
Za dostop do indeksiranih podatkov uporabljam NEST API.
Imam problem, da ko ES vprašam po določeni vrednosti fielda (npr. Place="London"), mi ta ne vrne nobenega rezultata, čeprav bi ga moral (sem poskusil preko Chrome plugina Sense).
Zadeva je nenavadna, saj ko vprašam po fieldih, kot so npr. title, songID ali archiveSongNumber zadeva deluje brez težav in vrne rezultate, če pa vprašam po fieldih, kot sta npr. Place ali Year, pa ne vrne nobenih rezultatov, pa čeprav bi jih moral.
Query po fieldu zgleda takole:
client.Search<Song>(s => s .Query(q => q .Match(m => m .OnField(p => p.Place) .Query("London") ) ) );
Mapping zgleda takole:
{ "musicstore": { "mappings": { "songs": { "properties": { "Year": { "type": "long" }, "Place": { "type": "string" }, "archiveSongNumber": { "type": "string" }, "songID": { "type": "long" }, "intonation": { "type": "string" }, "metrum": { "type": "string" }, "title": { "type": "string" }, "tempo": { "type": "string" } } } } } }
River s katerim zajamem podatke iz MSSQL zgleda takole:
PUT /_river/songs_river/_meta { "type":"jdbc", "jdbc": { "driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver", "url":"jdbc:sqlserver://ip_address:1433;databaseName=database", "user":"user", "password":"password", "strategy":"simple", "poll":"300s", "autocommit":true, "fetchsize":10, "max_retries":3, "max_retries_wait":"10s", "index":"musicstore", "type":"songs", "analysis": { "analyzer" :{ "whitespace" :{ "type" : "whitespace", "filter":"lowercase" } } }, "sql":"some_sql_query" } }
ES Client konfiguracija zgleda takole:
private static ElasticClient ElasticClient { get { Uri localhost = new Uri("http://localhost:9200"); var setting = new ConnectionSettings(localhost); setting.SetDefaultIndex("musicstore").MapDefaultTypeNames(d => d.Add(typeof(Song), "songs")); setting.SetConnectionStatusHandler(c => { if (!c.Success) throw new Exception(c.ToString()); }); return new ElasticClient(setting); } }
Zdi se mi, da se ob indexiranju ustvarijo napačni inverted indexi, vendar tega ne znam odpravit. Ima kdo kakšno idejo kako rešit takšno obnašanje oz. kaj delam narobe?
Live Long and Prosper!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Qt/C++]problem z Undefined reference na konstanti znotraj razredaOddelek: Programiranje | 2340 (2010) | phantom |
» | java / mysql / počasne poizvedbeOddelek: Programiranje | 751 (680) | BRBR |
» | [JAVA] helpOddelek: Programiranje | 1638 (1352) | keworkian |
» | tomcat in datasourceOddelek: Programiranje | 1994 (1751) | infiniteLoop |
» | [ASP.NET] problemOddelek: Izdelava spletišč | 2170 (1820) | Microsoft |