====== Similarity Index API ======
===== branch01.picalike.corpex-kunden.de:9095/index_query =====
loadbalancer: http://similarity-index.lb.int.picalike.corpex-kunden.de:80/\\
url (legacy oder upload): http://branch01.picalike.corpex-kunden.de:9095/index_query\\
host: **branch01.picalike.corpex-kunden.de**\\
port: **9095**\\
service name: **/index_query**\\
method: POST with a JSON
===== reload an index =====
all workers: http://branch01.picalike.corpex-kunden.de:9095/index_reload\\
worker one by one:\\
* **tower01**: http://tower01.picalike.corpex-kunden.de:4238/reload\\
* **dev01**: http://dev01.picalike.corpex-kunden.de:4238/reload\\
method: POST with a JSON\\
* **index_name** = The name of the indexes to be reloaded
===== git =====
picalike@sg01.picalike.corpex-kunden.de/home/picalike/repositories/v5/picalike_v5.git
===== deployment =====
SSH auf die Server, picalike@dev01 und neuron_cloud@tower01\\
screen -r index\\
es gibt zwei screen tabs:\\
* **frontend** = uwsgi –ini uwsgi_config_index_frontend.ini\\
* **backend** = python3 feature_similarity_service_all_shops.py\\
===== parameters =====
* **index_name** = The name of the indexes used for the loopup. Default:“all_images”. For every shop_id, there is an Index with the same name. A list of names is also possible.
* **k** = Number of images used for the similarity search
* **shop_id** = The shop the root image is in
* **prod_id** = The product if of the root image
* **or**
* **features** = list of features
* **or if branch01 is called**
* **myfile** = an image coded as base64 string
* **return_metadata** = if this is set to any value, the full documents from the meta-data-db are returned for each product
* **return_negativ** = if this is set to any value, all products are additionally returned that did not match the filter or have no metadata but were close in the index
* **meta_data_filter** = A dict in mongo style. Filters results in the 'metadata' field. There might be less then k products left after filtering. Examples:
* 1 Shop:
{"shop_id":"witt_de_feed"}
* N shops:
{"shop_id":{"$in":["witt_de_feed", "peterhahn_de_crawler"]}}
* last changed timestamp:
{"timestamp" :{
"$gte": 1544199370.0,
"$lt": 1544199371.0
}
}
* Minimal-Preis kleiner 50.00€ oder Maximal-Preis größer 10.00€
{"$or":[
{"metadata.min_price" :{
"$lt": 5000
}
},
{"metadata.max_price" :{
"$gte": 1000
}
}
]
}
* Von Witt und zwischen x und y verändert:
{"$and":[
{"shop_id":"witt_de_feed"},
{"timestamp" :{
"$gte": 1544199370.0,
"$lt": 1544199371.0
}
}
]
}
===== out =====
'root_images' → the reference image\\
'close_images_filtered_in' → the closest images, that match the filter\\
'hostname_worker' → the machine that did the job\\
'last_index_update' → last time the index in the worker was updated last_index_update\\
'errors' → list of happend errors\\
{
"_time_1_overall_ms": 7.35,
"_time_2_get_args_ms": 0.15,
"_time_3_get_root_ms": 2.14,
"_time_4_feature_request_ms": 1.1,
"_time_5_get_prod_ids_ms": 0.98,
"_time_6_get_meta_data_ms": 2.98,
"_time_7_sort_meta_data_ms": 0.02,
"close_images_filtered_in": [
{
"distance": 0.0,
"int_id": 5,
"product_data": [
{
"matches_db_filter": true,
"picalike_id": "9690328#asos_de_crawler",
"prod_id": "9690328",
"shop_id": "asos_de_crawler"
}
],
"url": "https://images.asos-media.com/products/asos-design-marineblaue-touchscreen-handschuhe/9690328-1-navy"
},
{
"distance": 1.0188307896896731e-05,
"int_id": 717894,
"product_data": [
{
"matches_db_filter": true,
"picalike_id": "9707579#asos_de_crawler",
"prod_id": "9707579",
"shop_id": "asos_de_crawler"
}
],
"url": "https://images.asos-media.com/products/asos-design-touch-screen-handschuhe-aus-wieder-aufbereitetem-polyester/9707579-1-navy"
}
],
"product_data_flat": [
{
"distance": 0.0,
"matches_db_filter": true,
"picalike_id": "9690328#asos_de_crawler",
"prod_id": "9690328",
"shop_id": "asos_de_crawler"
},
{
"distance": 1.0188307896896731e-05,
"matches_db_filter": true,
"picalike_id": "9707579#asos_de_crawler",
"prod_id": "9707579",
"shop_id": "asos_de_crawler"
}
],
"root_images": [
{
"picalike_id": [
"9690328#asos_de_crawler"
],
"prod_id": [
"9690328"
],
"shop_id": [
"asos_de_crawler"
],
"url": "https://images.asos-media.com/products/asos-design-marineblaue-touchscreen-handschuhe/9690328-1-navy"
}
]
}