之后跳转到DoCommandUpdate,UpdateAttributes 在其中发现这样一句话: // this is a hack // Query parser tries to detect an attribute type. And this is wrong because, we should // take attribute type from schema. Probably we’ll rewrite updates in future but // for now this fix just works. // Fixes cases like UPDATE float_attr=1 WHERE id=1; 也就是说,Sphinx更新属性时,没有去读取配置文件。而只是根据上面代码中的设定去读取更新信息,所以没有办法读取负数。一个主要的原因是,Sphinx没有32位整型数据的概念,只有32位无符号整型的概念。
if (rb.shards_start > -1) { // if the client set shards.start set this explicitly sreq.params.set(CommonParams.START, rb.shards_start); } else { sreq.params.set(CommonParams.START, "0"); } if (rb.shards_rows > -1) { // if the client set shards.rows set this explicity sreq.params.set(CommonParams.ROWS, rb.shards_rows); } else { sreq.params.set(CommonParams.ROWS, rb.getSortSpec().getOffset() + rb.getSortSpec().getCount()); }
vim ~/.screenrc,复制上面内容.之后就可以使用Screen了.一些常用命令如下: c-a : Ctrl + a screen -S name #开一个session screen -S name -X quit #杀死session c-a c #创建一个窗口 c-a n #next 窗口 c-a p #previous 窗口 c-a A #为窗口命名 c-a d #detach screen c-a #跳转到number的窗口 screen -ls #查看窗口 screen -r name #连接一个session screen -x name #共享session 可以参考http://hunsefee.diandian.com/post/2010-10-28/7319178
defspiral_number(N): step_x = [0, 1, 0, -1] step_y = [1, 0, -1, 0] a = [[0for j in xrange(N)] for j in xrange(N)] dir = 0 i = 0 j = 0 a[i][j] = 1 n = 2 while n <= N ** 2: x = i + step_x[dir] y = j + step_y[dir] if x >= 0and x < N and y >= 0and y < N and a[x][y] == 0: a[x][y] = n n += 1 i = x j = y else: dir = (dir + 1 + len(step_x)) % len(step_x)
for i in xrange(N): for j in xrange(N): print a[i][j], print