Elasticsearch cross-index query spike
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DELETE joininess-product | |
DELETE joininess-save | |
DELETE joininess-user | |
PUT joininess-product | |
PUT joininess-save | |
PUT joininess-user | |
DELETE joininess-product/_mapping/product | |
GET joininess-product/_mapping/product | |
PUT joininess-product/product/_mapping | |
{ | |
"product": { | |
"properties": { | |
"name": { | |
"type": "string", | |
"analyzer": "snowball" | |
}, | |
"users": { | |
"type": "integer" | |
} | |
} | |
} | |
} | |
DELETE joininess-save/_mapping/save | |
GET joininess-save/_mapping/save | |
PUT joininess-save/save/_mapping | |
{ | |
"save": { | |
"properties": { | |
"user_id": { | |
"type": "integer" | |
}, | |
"product_id": { | |
"type": "integer" | |
} | |
} | |
} | |
} | |
DELETE joininess-user/_mapping/user | |
GET joininess-user/_mapping/user | |
PUT joininess-user/user/_mapping | |
{ | |
"user": { | |
"properties": { | |
"product_ids": { | |
"type": "integer" | |
}, | |
"friends": { | |
"type": "integer" | |
} | |
} | |
} | |
} | |
############################# Index products | |
POST _bulk | |
{"index": {"_index": "joininess-product", "_type": "product", "_id": 1}} | |
{"name": "monkey head","users":[500,501]} | |
{"index": {"_index": "joininess-product","_type": "product","_id": 2}} | |
{"name": "dragon","users":[500,501,502]} | |
{"index": {"_index": "joininess-product","_type": "product","_id": 3}} | |
{"name": "dragon head","users":[501,502]} | |
############################# Index saves | |
POST _bulk | |
{"index":{"_index":"joininess-save","_type":"save","_id":1}} | |
{"user_id":500,"product_id":1} | |
{"index":{"_index":"joininess-save","_type":"save","_id":2}} | |
{"user_id":501,"product_id":1} | |
{"index":{"_index":"joininess-save","_type":"save","_id":"3"}} | |
{"user_id":500,"product_id":2} | |
{"index":{"_index":"joininess-save","_type":"save","_id":"4"}} | |
{"user_id":501,"product_id":2} | |
{"index":{"_index":"joininess-save","_type":"save","_id":"5"}} | |
{"user_id":502,"product_id":2} | |
{"index":{"_index":"joininess-save","_type":"save","_id":"6"}} | |
{"user_id":501,"product_id":3} | |
{"index":{"_index":"joininess-save","_type":"save","_id":"7"}} | |
{"user_id":502,"product_id":3} | |
############################ Index users | |
POST _bulk | |
{"index":{"_index":"joininess-user","_type":"user","_id":500}} | |
{"product_ids":["1","2"], "friends":[501]} | |
{"index":{"_index":"joininess-user","_type":"user","_id":501}} | |
{"product_ids":["1","2","3"], "friends":[502]} | |
{"index":{"_index":"joininess-user","_type":"user","_id":502}} | |
{"product_ids":["2","3"], "friends": []} | |
POST joininess-product,joininess-save,joininess-user/_refresh | |
POST joininess-product,joininess-save,joininess-user/_cache/clear | |
GET joininess-save,joininess-user/save,user/_search | |
GET joininess-user/user/_search | |
GET joininess-product/product/3 | |
GET joininess-product/product/_search | |
GET joininess-save/save/_search | |
{ | |
"query":{ | |
"filtered":{ | |
"filter":{ | |
"term":{ | |
"user_id": 500 | |
} | |
} | |
} | |
} | |
} | |
GET joininess-product/product/_search | |
{ | |
"query":{ | |
"filtered":{ | |
"query":{ | |
"match":{ | |
"name": { | |
"query": "head" | |
} | |
} | |
} | |
} | |
} | |
} | |
## fails because we cannot search on user_id | |
## https://github.com/elasticsearch/elasticsearch/issues/6769 | |
## https://github.com/elasticsearch/elasticsearch/pull/3278 | |
GET joininess-product/product/_search | |
{ | |
"query": { | |
"filtered": { | |
"filter": { | |
"terms": { | |
"_id": { | |
"index": "joininess-save", | |
"type": "save", | |
"user_id":"500", | |
"path":"product_id" | |
} | |
} | |
} | |
} | |
} | |
} | |
GET joininess-product/product/_search | |
{ | |
"query": { | |
"filtered": { | |
"query":{ | |
"term":{ | |
"name":"dragon" | |
} | |
}, | |
"filter": { | |
"terms": { | |
"_id": { | |
"index": "joininess-user", | |
"type": "user", | |
"id":500, | |
"path":"product_ids" | |
} | |
} | |
} | |
} | |
} | |
} | |
GET joininess-product/product/_search | |
{ | |
"query": { | |
"filtered": { | |
"filter": { | |
"terms": { | |
"users": [502] | |
} | |
} | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment