» »

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:
{
    "_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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Qt/C++]problem z Undefined reference na konstanti znotraj razreda

Oddelek: Programiranje
102340 (2010) phantom
»

java / mysql / počasne poizvedbe

Oddelek: Programiranje
5751 (680) BRBR
»

[JAVA] help

Oddelek: Programiranje
141638 (1352) keworkian
»

tomcat in datasource

Oddelek: Programiranje
131994 (1751) infiniteLoop
»

[ASP.NET] problem

Oddelek: Izdelava spletišč
382170 (1820) Microsoft

Več podobnih tem