forked from KEMT/zpwiki
		
	Upload files to 'pages/students/2016/jan_holp/dp2021/dp2021 zdrojove subory'
upravena funkcia map
This commit is contained in:
		
							parent
							
								
									7dd72f0760
								
							
						
					
					
						commit
						4989384544
					
				@ -0,0 +1,143 @@
 | 
				
			|||||||
 | 
					//Jan Holp, DP 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//client2 = cassandra
 | 
				
			||||||
 | 
					//client1  = elasticsearch 
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//require for PageRank 
 | 
				
			||||||
 | 
					var  Pagerank = require('../lib/pagerank')
 | 
				
			||||||
 | 
					var fs = require('fs')
 | 
				
			||||||
 | 
					var path = require('path')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//require the Elasticsearch librray
 | 
				
			||||||
 | 
					const elasticsearch = require('elasticsearch');
 | 
				
			||||||
 | 
					const client1 = new elasticsearch.Client({
 | 
				
			||||||
 | 
					   hosts: [ 'localhost:9200']
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					client1.ping({
 | 
				
			||||||
 | 
					     requestTimeout: 30000,
 | 
				
			||||||
 | 
					 }, function(error) {
 | 
				
			||||||
 | 
					 // at this point, eastic search is down, please check your Elasticsearch service
 | 
				
			||||||
 | 
					     if (error) {
 | 
				
			||||||
 | 
					         console.error('Elasticsearch cluster is down!');
 | 
				
			||||||
 | 
					     } else {
 | 
				
			||||||
 | 
					         console.log('ELasticSearch is ok');
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					 });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//create new index - skweb2
 | 
				
			||||||
 | 
					client1.indices.create({
 | 
				
			||||||
 | 
					    index: 'skweb2'
 | 
				
			||||||
 | 
					}, function(error, response, status) {
 | 
				
			||||||
 | 
					    if (error) {
 | 
				
			||||||
 | 
					        console.log(error);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        console.log("created a new index", response);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//indexing method
 | 
				
			||||||
 | 
					const bulkIndex = function bulkIndex(index, type, data) {
 | 
				
			||||||
 | 
						let bulkBody = [];
 | 
				
			||||||
 | 
						//id = 1;
 | 
				
			||||||
 | 
					const errorCount = 0;
 | 
				
			||||||
 | 
						data.forEach(item => {
 | 
				
			||||||
 | 
							bulkBody.push({
 | 
				
			||||||
 | 
								index: {
 | 
				
			||||||
 | 
									_index: index,
 | 
				
			||||||
 | 
									_type:  type,
 | 
				
			||||||
 | 
									_id :   item.target_link,  // documents id is url
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
							bulkBody.push(item);
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					        console.log(bulkBody);
 | 
				
			||||||
 | 
					        //console.log(object_list.id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						client1.bulk({body: bulkBody})
 | 
				
			||||||
 | 
							.then(response => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								response.items.forEach(item => {
 | 
				
			||||||
 | 
									if (item.index && item.index.error) {
 | 
				
			||||||
 | 
										console.log(++errorCount, item.index.error);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								console.log(
 | 
				
			||||||
 | 
									`Successfully indexed ${data.length - errorCount}
 | 
				
			||||||
 | 
									out of ${data.length} items`
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							.catch(console.err);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const cassandra = require('cassandra-driver');
 | 
				
			||||||
 | 
					const client2 = new cassandra.Client({ contactPoints: ['localhost:9042'], localDataCenter: 'datacenter1', keyspace: 'websucker' });
 | 
				
			||||||
 | 
					const query1 = 'SELECT domain_name FROM websucker.domain_quality WHERE good_count > 0 ALLOW FILTERING';
 | 
				
			||||||
 | 
					//const query2 = 'SELECT * from websucker.content WHERE domain_name = ' + domain_name[i] + 'ALLOW FILTERING'; // body_size > 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var domain_name = [];         // pole domain name 
 | 
				
			||||||
 | 
					var object_list = [];         // pole ktore obsahuje vsetky dokumenty pre jednotilive domain name
 | 
				
			||||||
 | 
					const linkProb = 0.85;    // high numbers are more stable (Pagerank)
 | 
				
			||||||
 | 
					const tolerance = 0.0001;  // sensitivity for accuracy of convergence
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					client2.execute(query1)                             // vyselektujeme vsetky domenove mena a ulozime do pola
 | 
				
			||||||
 | 
					  .then(result => {
 | 
				
			||||||
 | 
					  		let pole = result.rows.map(r => {
 | 
				
			||||||
 | 
					  			domain_name.push(r.domain_name)
 | 
				
			||||||
 | 
					  		});
 | 
				
			||||||
 | 
					  		console.log("Vsetky domenove mena : " , domain_name);
 | 
				
			||||||
 | 
					 	domain_name.forEach(name => {										// pre kazde domenove meno spustime select nizsie, kt. vyberie vsetky clanky ktore niesu prazdne
 | 
				
			||||||
 | 
								let query = 'SELECT * from websucker.content WHERE domain_name = ' + "'" + name + "'" + ' and body_size > 0 ALLOW FILTERING';
 | 
				
			||||||
 | 
								client2.execute(query).then( res => {
 | 
				
			||||||
 | 
									object_list = res.rows.map(rr => {
 | 
				
			||||||
 | 
									return {
 | 
				
			||||||
 | 
										 domain_name: rr.domain_name,
 | 
				
			||||||
 | 
										 title: rr.title,
 | 
				
			||||||
 | 
										 body: rr.body,
 | 
				
			||||||
 | 
										 links: rr.links,
 | 
				
			||||||
 | 
										 target_link: rr.target_link,
 | 
				
			||||||
 | 
										// pagerank: Pagerank(rr.links ,linkProb,tolerance, function (err, res) {
 | 
				
			||||||
 | 
										// 	return res;
 | 
				
			||||||
 | 
										// })
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								//console.log(object_list);
 | 
				
			||||||
 | 
								bulkIndex('skweb2', 'web_page', object_list);
 | 
				
			||||||
 | 
								}).catch(error => console.log(error));
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}).catch(err => console.log(err));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//volanie funkcie pre vypocet Pageranku a definovane premenne
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Larger numbers (0.85) //var linkProb = 0.85;    
 | 
				
			||||||
 | 
					//accuracy at which we terminate 
 | 
				
			||||||
 | 
					//--------------Pagerank 
 | 
				
			||||||
 | 
					//	const linkProb = 0.85;    // high numbers are more stable (Pagerank)
 | 
				
			||||||
 | 
					//	const tolerance = 0.0001;  // sensitivity for accuracy of convergence
 | 
				
			||||||
 | 
					   /*
 | 
				
			||||||
 | 
						var nodeMatrix = [
 | 
				
			||||||
 | 
					        [object_list.links]
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const PR = function PR(nodeMatrix,linkProb,tolerance){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pagerank(nodeMatrix, linkProb, tolerance, function (err, res) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return res;
 | 
				
			||||||
 | 
					    //console.log(res);
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user