ищем хикке-тян. маппинг

Давнанько меня тут небыло. и я таки закончил свой самопальный поисковик. вроде я писал про всё, кроме маппинга и кролика.
Начнём с мапинга. И создадим новый индекс.

curl -XPUT 'http://192.168.1.5:4200/tan/' -d '
index: 
	number_of_replicas:2
	number_of_shards :3
'

После чего обозначим используемые типы.

curl -XPUT 'http://192.168.1.5:4200/tans/_mapping/default' -d'
{
	"default":
	{
		"properties": 
		{
			"updated":
			{
				"type":"date",
				"format":"basic_date_time"
			},
			"id":
			{
				"type":"string",
				"index":"not_analyzed"
				},
			"counters":
			{ 
				"properties":
				{
					"photos": {"type":"integer"},
					"subscribers": {"type":"integer"},
					"wallPosts": {"type":"integer"},
					"groups": {"type":"integer"},
					"friends": {"type":"integer"}
				}
			},
			"userInfo": 
			{
				"properties":
				{
					"id": {"type": "long"},
					"first_name": {"type": "string"},
					"last_name": {"type": "string"},
					"sex": {"type":"integer"},
					"domain": {"type": "string"},
					"screen_name": {"type": "string"},
					"bdate": {"type":"string"},
					"city": 
					{
						"properties":
						{
							"id": {"type":"integer"},
							"title": {"type":"string"}
						}
					},
					"photo_100":{ "type":"string","index": "not_analyzed"},
					"site": {"type":"string"},
					"status": {"type":"string"},
					"university": {"type":"integer"},
					"university_name": {"type":"string"},
					"faculty": {"type":"integer"},
					"faculty_name": {"type":"string"},
					"graduation": {"type":"integer"},
					"education_status": {"type":"string"},
					"relation": {"type":"integer"},
					"personal": 
					{
						"properties":
						{
							"political" :{"type" : "integer","index" : "not_analyzed"},
							"religion" : {"type" : "string","index" : "not_analyzed"},
							"smoking" : {"type" : "integer","index" : "not_analyzed"},
							"alcohol" : {"type" : "integer","index" : "not_analyzed"}
						}
					},
					"interests": {"type" : "string", "index" : "not_analyzed"},
					"music": {"type" : "string", "index" :"not_analyzed"},
					"movies": {"type" : "string","index" :"not_analyzed"},
					"tv": {"type" : "string", "index" :"not_analyzed"},
					"books": {"type" : "string", "index" :"not_analyzed"},
					"games": {"type":"string","index":"not_analyzed"},
					"about": {"type":"string","index":"not_analyzed"}
				}
			},
			"groupsInfo": 
			{
				"properties":
				{
					"names": {"type":"string"},
					"admined": {"type":"string"}
				}
			},
			"friendsInfo": 
			{
				"properties":
				{
					"from":{"type":"string"},
					"universities":{"type":"string"},
					"gradYears": {"type":"integer"},
					"analized" :  {"type":"integer"},
					"sex":
					{
						"properties":
						{
							"mens":{"type":"integer"},
							"womens":{"type":"integer"},
							"traps":{"type":"integer"}
						}
					},
					"fsex":{ "type": "integer", "index":"not_analyzed"}
				}	
			},
			"wallInfo":
			{
				"properties":
				{
					"texts":{"type":"string","index": "not_analyzed"},
					"pics":{"type":"string","index": "not_analyzed"}
				}
			},
			"pics":{"type":"string","index": "not_analyzed"}}
		} 
	}	
}'

Теперь эластик с кибаной готовы к тому что-бы получать данные. Кроме того я использую rabbitmq. Выглядит этопримерно так. Ответы от втентакля мы послыдаем кролику, а потом забираем у кролика в другом процессе. После чего добовляем готовые данные в эластик(крату). Это может быть оче полезно например при парсинге в несколько потоков (используя разные oauth токены).

NODENAME=rabbit
NODE_IP_ADDRESS=192.168.1.5
NODE_PORT=5672

HOME=/var/lib/rabbitmq
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

ну вот, наверное и всё.

pacman -S rabbitmq
systemctl enable rabbitmq
systemctl start rabbitmq

завтра наверное запишу видию, что-бы показать как всё это вместе выглядит и работает

Добавить комментарий