小编Rod*_*d0n的帖子

无法从套接字io接收redis数据

我正在使用redis作为python和node之间的pubsub messenger构建实时可视化.总是运行一个python脚本,用hmset设置redis哈希.如果我在redis客户端输入以下示例命令:"HGETALL'selllers-80183917'",那么应用程序的那一侧工作正常,我最终得到了正确的数据.

问题出在js方面.我正在使用socketio和redis nodejs库来监听redis实例并通过d3js在线发布结果.

我用节点运行以下代码:

var express = require('express');
var app = express();
var redis = require('redis');

app.use(express.static(__dirname + '/public'));


var http = require('http').Server(app);


var io = require('socket.io')(http);
var sredis = require('socket.io-redis');
io.adapter(sredis({ host: 'localhost', port: 6379 }));



redisSubscriber = redis.createClient(6379, 'localhost', {});


redisSubscriber.on('message', function(channel, message) {
  io.emit(channel, message);
});



app.get('/sellers/:seller_id', function(req, res){
  var seller_id = req.params.seller_id;
  redisSubscriber.subscribe('sellers-'.concat(seller_id)); 


  res.render( 'seller.ejs', { seller:seller_id } );
});


http.listen(3000, '127.0.0.1', function(){
  console.log('listening on *:3000');
});
Run Code Online (Sandbox Code Playgroud)

这是seller.ejs文件的相关部分,它接收用户请求并输出viz:

        var socket = io('http://localhost:3000');
        var stats;
        var …
Run Code Online (Sandbox Code Playgroud)

redis node.js socket.io

9
推荐指数
1
解决办法
526
查看次数

使用Python请求查询ElasticSearch不能正常工作

我正在尝试使用Elastic Search引擎对mongodb数据库进行全文搜索,但我遇到了一个问题:无论我提供什么搜索词(或者如果我使用query1或query2),引擎总是会返回相同的结果.我认为问题在于我提出请求的方式,但我不知道如何解决它.

这是代码:

def search(search_term):
    query1 = {
        "fuzzy" : {
            "art_text" : {
                "value" : search_term,
                "boost" : 1.0,
                "min_similarity" : 0.5,
                "prefix_length" : 0
            }
        },
        "filter": {
            "range" : {
                "published": {
                    "from" : "20130409T000000",
                    "to": "20130410T235959"
                }
            }
        }
    }
    query2 = {
        "match_phrase": { "art_text": search_term }
    }

    es_query = json.dumps(query1)
    uri = 'http://localhost:9200/newsidx/_search'
    r = requests.get(uri, params=es_query)
    results = json.loads( r.text )
    data = [res['_source']['api_id'] for res in results['hits']['hits'] ]
    print "results: %d" % …
Run Code Online (Sandbox Code Playgroud)

python elasticsearch python-requests

8
推荐指数
1
解决办法
6479
查看次数

提升特定领域的搜索量并按排名进行排序

我有以下查询:

{
    "sort": [
        {"actual_rank" : "desc"}
    ],
    "query": {
        "multi_match" : {
            "query" : term,
            "fields" : [ "title^3" , "category^5" , "entities.name^5"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此查询的问题在于按排名进行排序会使指定的字段提升相当不相关(在指定字段中未出现该字词的最佳排名项目将比出现该字词的最差排名项目更高) .

我想降低排序的重要性,以获得更好的结果.

elasticsearch

6
推荐指数
1
解决办法
4620
查看次数

将项目列表传递给多处理函数

我有以下功能:

def create_job(target, args):
    p = multiprocessing.Process(target=target, args=args)
    p.start()
    return p
Run Code Online (Sandbox Code Playgroud)

上面的函数被调用:

ps = create_job(mc.collect_categories, (cat_ids),)
Run Code Online (Sandbox Code Playgroud)

作为 cat_ids 'ids' 列表:['ML68', 'MA453','MA33']

当我运行代码时,出现以下错误(包含 10 个 cat_ids 的列表):

TypeError: collect_categories() takes exactly 2 arguments (11 given)
Run Code Online (Sandbox Code Playgroud)

我尝试用“*”传递值来解压它,但这不是问题。

python python-multiprocessing

6
推荐指数
1
解决办法
8714
查看次数

范围过滤器不起作用

我正在使用 elasticsearch 搜索引擎,当我运行下面的代码时,返回的结果与范围条件不匹配(我得到的项目的发布日期低于所需的限制):

#!/bin/bash
curl -X GET 'http://localhost:9200/newsidx/news/_search?pretty' -d '{

    "fields": [
        "art_text",
        "title",
        "published",
        "category"
    ],
    "query": {
        "bool": {

            "should": [
                {
                    "fuzzy": {"art_text": {"boost": 89, "value": "google" }}
                },
                {
                    "fuzzy": {"art_text": {"boost": 75, "value": "twitter" }}
                }
            ],
            "minimum_number_should_match": 1
        }
    },
    "filter" : {
        "range" : {
            "published" : {
                "from" : "2013-04-12 00:00:00"
            }
        }
    }

}

'
Run Code Online (Sandbox Code Playgroud)

我还尝试将 range 子句放在一个 must 中,在 bool 查询中,但结果是一样的。

编辑:我使用 elasticsearch 通过河流插件在 mongodb 中进行搜索。这是我用 ES 搜索 mongodb db …

elasticsearch

5
推荐指数
1
解决办法
4444
查看次数

增加FacetGrid图上行之间的空间

我有以下代码创建了可以在图片中看到的图:

g = sns.FacetGrid(data, col="Provincia",col_wrap=6,size=2.5)
g.map(sns.barplot, "Anio", "Diff");
g.set_axis_labels("Año", "Porcentaje de aumento");

for ax in g.axes.flat:
    _ = plt.setp(ax.get_yticklabels(), visible=True)
    _ = plt.setp(ax.get_xticklabels(), visible=False)
    _ = plt.setp(ax.get_xticklabels()[0], visible=True)    
    _ = plt.setp(ax.get_xticklabels()[-1], visible=True)
Run Code Online (Sandbox Code Playgroud)

如您在图片中所看到的,问题是x刻度折叠起来并带有下面的col名称。为了解决此问题,增加此空间的正确方法是什么?

输出

matplotlib seaborn

4
推荐指数
1
解决办法
4314
查看次数

查询以获得每个项目的最高排名

我是(简化)以下模型:

Book
  id
  name

BookCategory
  book_id
  category_id
  rank

Category
  id
  name
Run Code Online (Sandbox Code Playgroud)

对于给定的类别ID,我希望将具有该类别的书籍列为排名最高的类别.

我将举一个例子来说明它:

Book   

id    name   
---  -------
1     On Writing
2     Zen teachings
3     Siddharta

BookCategory   

book_id category_id      rank   
---       -------        -----
1        2               34.32
1        5               24.23
1        9               54.65
2        5               27.33
2        9               28.32
3        2               30.43
3        5               27.87

Category   

id    name   
---  -------
2     Writing
5     Spiritual
9     Buddism
Run Code Online (Sandbox Code Playgroud)

category_id = 2的结果将是id = 3的书.

这是我正在运行的查询:

SELECT book."name" AS bookname
FROM bookcategory AS bookcat
LEFT …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-9.1

2
推荐指数
1
解决办法
1万
查看次数

构建一个Twitter用户数据库

我正在构建一个简单的twitter图表,我正在与团队的其他成员讨论如何实现它.

我认为A选项是最好的,因为性能和简单性,但其他成员(项目负责人特别喜欢C)由于缺乏平台经验而不相信.

我从未在生产应用程序中使用过图形,所以当PL开始将它与C选项进行比较时,我没有强大的参数.

所以我问你根据自己的经验选择哪个选项?

内容:

  • Twitterusers
  • 清单
  • 兴趣

A)neo4j图

节点:

  • twitteruser
  • 名单
  • 利益

关系:

  • 跟随(user1,user2)
  • member_of(用户,列表)
  • interest_in(用户,兴趣)

B)相同的图形,但在较小的图形中分开以提高性能.

C)简单的neo4j图和用于查询数据的关系数据库.

.图形:

节点:

  • twitteruser

关系:

  • 相似度(user1,user2)

.relational db:A的节点将转换为表,关系将通过多对多键完成.

twitter graph relational-database neo4j

2
推荐指数
1
解决办法
154
查看次数

服务器上的语法错误

我在python中有以下行:

out = {"response": {"status": 200, "message": STATUS_CODES["200"], "data": { article }}}
Run Code Online (Sandbox Code Playgroud)

在我的机器上运行正常(python 2.7)但我在生产服务器上遇到语法错误(python 2.6.6).

你对这可能是什么有任何想法吗?我不明白这是什么问题.

python

0
推荐指数
1
解决办法
71
查看次数

Sparql查询不好形成

我正在尝试基于属性列表构建一个sparql查询,但是我得到一个错误,说明查询结果不好.问题是我不知道该怎么做才能修复它.

这是功能:

def create_query(dbpedia_uri, props):
    #props are something like this ('dbpedia-owl', 'birthdate')
    filters = ''

    for prop in QUERIES_DICT[ename]:
        filters += ' OPTIONAL { ?x %s:%s ?%s. } \n' % (corresp_dict[prop[0]], prop[1], prop[1])

    query = u"""
        SELECT * WHERE {
.          <%s>.
          ?x dbpedia-owl:abstract ?abstract.
          %s
          FILTER (LANG(?abstract) = 'en')
        }
    """ % (dbpedia_uri, filters)

    return query
Run Code Online (Sandbox Code Playgroud)

这是我得到的查询:

u"\n        SELECT * WHERE { <http://dbpedia.org/resource/Tim_Cook>\n          ?x dbpedia-owl:abstract ?abstract.\n          OPTIONAL { ?x dbpedia-owl:birthDate ?birthDate. }\n OPTIONAL { ?x dbpedia-owl:birthPlace ?birthPlace. }\n OPTIONAL …
Run Code Online (Sandbox Code Playgroud)

python sparql sparqlwrapper

0
推荐指数
1
解决办法
190
查看次数