Ejemplo n.º 1
0
        internal void PopulateElasticDbBulk()
        {
            if (!mysqlDbAccess.Connect())
            {
                Console.WriteLine("Unable to connect to mysql db");
            }
            IEnumerable <VoterInfoComelec> listDbVoters = mysqlDbAccess.IterateAll2();
            int              i          = 48720000 + 1;
            long             currTime   = Environment.TickCount;
            List <VoterInfo> bulkVoters = new List <VoterInfo>();

            foreach (VoterInfoComelec voter in listDbVoters)
            {
                //if (i < 39240000)
                //{
                //    i++;
                //    continue;
                //}

                VoterInfo emVoter = MapVoterInfo(voter);
                bulkVoters.Add(emVoter);
                //emgr.CreateNewVoter(emVoter);
                if (i % 10000 == 0)
                {
                    emgr.CreateNewVoterBulk(bulkVoters);
                    Console.WriteLine("Written {0} out of 75302673 records to elastic, took {1}", i, Environment.TickCount - currTime);
                    currTime = Environment.TickCount;
                    bulkVoters.Clear();
                }
                i++;
            }

            mysqlDbAccess.Disconnect();
        }
Ejemplo n.º 2
0
        private List <VoterInfo> MapResults(ISearchResponse <VoterInfo> response)
        {
            List <VoterInfo> retList = new List <VoterInfo>();

            int i = 0;

            Console.WriteLine("Hits: {0}", response.Total);
            if (response.OriginalException != null)
            {
                Console.WriteLine(response.OriginalException);
                var stream    = new System.IO.MemoryStream();
                var jsonQuery = System.Text.Encoding.UTF8.GetString(response.ApiCall.RequestBodyInBytes);
                Console.WriteLine(jsonQuery);
                return(retList);
            }
            foreach (var hit in response.Hits)
            {
                VoterInfo newVoter = new VoterInfo()
                {
                    Address      = hit.Source.Address,
                    Firstname    = hit.Source.Firstname,
                    Maternalname = hit.Source.Maternalname,
                    Lastname     = hit.Source.Lastname,
                    DateOfBirth  = hit.Source.DateOfBirth,
                    Sex          = hit.Source.Sex,
                    CivilStatus  = hit.Source.CivilStatus,
                };

                retList.Add(newVoter);
            }

            return(retList);
        }
Ejemplo n.º 3
0
        public void Query(VoterInfo searchObj)
        {
            var result = client.Search <VoterInfo>(s => s.Query(q => q.Terms(
                                                                    c => c.Name("named_query")
                                                                    .Boost(1.1)
                                                                    .Field(p => p.Firstname)
                                                                    .Terms("kobe"))));

            //string[] values = { "kobe", "brook"}; // cannot capitalize first letter! e.g. Kobe even if the db entry is Kpbe
            //var result = client.Search<VoterInfo>(s => s.Query(q => q.Terms(c => c.Field("firstname").Terms(values))));
            //var result = client.Search<VoterInfo>(s => s.Query(q => q.ConstantScore(c => c.Filter(f => f.Terms(t => t.Field(fld => fld.Firstname).Terms(values))))));

            DisplayResult(result);
        }
Ejemplo n.º 4
0
        public void PopulateElasticDb()
        {
            if (!mysqlDbAccess.Connect())
            {
                Console.WriteLine("Unable to connect to mysql db");
            }
            IEnumerable <VoterInfoComelec> listDbVoters = mysqlDbAccess.IterateAll2();
            int  i        = 0;
            long currTime = Environment.TickCount;

            foreach (VoterInfoComelec voter in listDbVoters)
            {
                VoterInfo emVoter = MapVoterInfo(voter);
                //emgr.CreateNewVoter(emVoter);
                if (i % 10000 == 0)
                {
                    Console.WriteLine("Written {0} out of 75302673 records to elastic, took {1}", i, Environment.TickCount - currTime);
                    currTime = Environment.TickCount;
                }
                i++;
            }

            mysqlDbAccess.Disconnect();
        }
Ejemplo n.º 5
0
 public void CreateNewVoter(VoterInfo voter)
 {
     client.Index(voter);
 }