» »

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
102381 (2051) phantom
»

java / mysql / počasne poizvedbe

Oddelek: Programiranje
5765 (694) BRBR
»

[JAVA] help

Oddelek: Programiranje
141664 (1378) keworkian
»

tomcat in datasource

Oddelek: Programiranje
132038 (1795) infiniteLoop
»

[ASP.NET] problem

Oddelek: Izdelava spletišč
382190 (1840) Microsoft

Več podobnih tem