Ответы пользователя по тегу Neo4j
  • Может ли Neo4J сделать такой запрос?

    @romanc
    уточните пожалуйста следующие моменты:
    1. цена `price` указывается для товара `productId`,
    а как нам узнать цену товара `productPairId` ?
    2. если не секрет, расскажите почему вы выбрали модель в которой может быть не более двух товаров в покупке?
    3. может ли цена меняться часто - и необходимо учитывать последнюю цену?

    запрос может выглядеть так:
    MACTH 
        (p1:Product {productId:'Сигнал'})<-[:HAS_PRODUCT]-(psc:Purchase)
    WITH
        p1, psc
    ORDER BY 
        psc.purchasedAt DESC
    WITH  //получаем последнюю стоимость заданного товара
        p1, collect(psc)[0].price as lastPrice1 
    MACTH
        (p1)-[:HAS_CATEGORY]->(c2:Category)<-[:HAS_CATEGORY]-(p2)<-[:HAS_PRODUCT]-(psc:Purchase)
    WITH DISTINCT
        p1, lastPrice1, p2, psc
    ORDER BY
        psc.purchasedAt DESC
    WITH  //получаем последнюю стоимость товаров из тех же категорий
        p1, lastPrice1, p2, collect(psc)[0].price as lastPrice2
    WHERE //оставляем более дешевые
        lastPrice1 > lastPrice2
    MATCH 
        (p2)
    OPTIONAL MATCH 
        (p2)<-[:HAS_PRODUCT|HAS_PAIR_PRODUCT]-(psc:Purchase)
    WHERE  // считаем оплаты за последний месяц, при этом учитываем оба товара в оплате
        psc.purchasedAt > timestamp() - 60*60*24*30*1000
    RETURN p2, count(psc) as cnt 
    ORDER by cnt DESC
    LIMIT 5
    Ответ написан
  • Как правильно симпортировать базу данных в neo4j?

    @romanc
    База данных вроде бы симпортилась но она совсем пустая, хоть написанно что весит 600мб

    и при этом запрос
    MATCH (n) RETURN n LIMIT 100
    ничего не возвращает?

    ознакомьтесь с доками, все очень подробно расписано:
    https://neo4j.com/developer/guide-import-csv/
    https://neo4j.com/developer/guide-importing-data-a...
    https://neo4j.com/docs/developer-manual/3.2/cypher...
    https://www.youtube.com/watch?v=SF-C7bkTQMI

    попробуйте для начала запросить и увидеть данные в консоли:
    LOAD CSV WITH HEADERS FROM 'file:///path/to/data.csv' AS line
    FIELDTERMINATOR ';'
    WITH line
    LIMIT 100
    RETURN line

    если ничего не возвращает, проверьте путь к файлу, разделитель и хедер,
    а при создании узлов и связей убедитесь в том, что используете опцию USING PERIODIC COMMIT либо, что ваш запрос на добавление данных завершен и транзакция успешно закрыта.

    так же можете воспользоваться тулзами для загрузки:
    neo4j.com/docs/operations-manual/current/tutorial/...
    https://github.com/graphaware/neo4j-importer
    Ответ написан
    Комментировать