2015-04-15 2 views
0

У меня есть этот тип Ouput GenralЗначение поля Solr в другом запросе? Является ли это возможным?

"docs": [ 
    { 
    "id": "552e1acd5971b", 
    "product_id": "NOT05253", 
    "attribute_id": 0, 
    "attribute_name": "Brend", 
    "value_id": 12923, 
    "value_name": "ACER", 
    "category_id": 166, 
    "_version_": 1498504104368930800 
    }, 
    { 
    "id": "552e1acd7d479", 
    "product_id": "NOT05604", 
    "attribute_id": 0, 
    "attribute_name": "Brend", 
    "value_id": 12923, 
    "value_name": "ACER", 
    "category_id": 166, 
    "_version_": 1498504104523071500 
    }, 
    { 
    "id": "552e1acdc9c7c", 
    "product_id": "NOT05988", 
    "attribute_id": 0, 
    "attribute_name": "Brend", 
    "value_id": 12923, 
    "value_name": "ACER", 
    "category_id": 166, 
    "_version_": 1498504104851275800 
    }, 
    { 
    "id": "552e1acdef261", 
    "product_id": "NOT06361", 
    "attribute_id": 0, 
    "attribute_name": "Brend", 
    "value_id": 12923, 
    "value_name": "ACER", 
    "category_id": 166, 
    "_version_": 1498504105011708000 
    }, ..... 

То, что я пытаюсь сделать, это получить результаты, где product_id матч на лугах один product_id в другом запросе ...

category_id:166 AND value_id:12923 
AND product_id:(_query_:"value_id:64 ") 

Я использую это для того, чтобы ускорить фильтрацию продукта EAV, и этот запрос, в частности, должен сократить количество продуктов product_id для ноутбука ACER в размере с размером экрана 15,6 ":)

Другие слова - что-то вроде SQL-запроса:

SELECT * FROM table WHERE value_id=12923 AND product_id IN (SELECT product_id FROM table WHERE value_id=64) 

Какое-либо посох? : D

ответ

0

Solr имеет некоторые возможности объединения, описанные здесь [1]. Это может быть то, что вы ищете.
О других разделах: Я хотел бы использовать запрос фильтра (т.е. FQ = value_id: 12923)


[1] https://wiki.apache.org/solr/Join

Смежные вопросы