- 浏览: 43494 次
- 性别:
- 来自: 杭州
-
最新评论
-
yangguangmeng:
您好: 还请指点下,谢谢! 我是读取目录下文件中数据,怎么修改 ...
sphinx+python 索引耗内存 -
孤独水寒cbq:
思路不错,基本的数据过滤需求可以满足。感谢楼主
java解析log日志 -
muzi1012:
你好,我现在用python做数据源,建索引出来的文件才1k、0 ...
sphinx+python 索引耗内存 -
liuxinglanyue:
繁体字啊收藏一篇这样的文章,操作linux编辑应该很快了。
vi指令說明(完整版)
文章列表
以后工作中需要接触php,自己先把环境搭好熟悉下。
按照网上的教程,下载php5.4.4和apache2.2,并且配置好。
启动apache错误,总是提示“can't load php5apache2_4.dll into server”。
网上查找资料很久,后来才发现原来是php版本和apache版本匹配的问题。
apache2.2版本需要对应php5apache2_2.dll,重新下载php5.3.27版本配置后启动正常。
搜索一直用的是coreseek,数据源方面用的是python,以前数据量少的时候没问题,数据量一大,用python建索引就出现问题。未做优化前,python建索引的过程的第一步就是先捞出所有的数据放内存,这也是官网文档的做法,数据量一大,必然导致占用内存过大,导致进程终止或者服务器负载过高。实际数据:200W,在执行python数据源时,内存达到2g以上。优化后的数据:内存维持在427M,没有继续增长。原先的python的代码把sql的查询都放在def Connected(self)方法,一次性全部查询出来后使用def NextDocument(self)遍历。现把查询语句调到NextDocum ...
自己写的一段日志解析的java程序,比较乱,先记录(小文件):
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import ...
周末无聊拿起很久之前买的那本 python核心编程,翻了一下,感觉python果然简洁,比java方便多了。如果线上需要执行一个业务简单的小功能,完全可以直接写个python文件扔到线上直接执行。
下面是读取log日志的,先记录,继续改进中
# -*- coding: UTF-8 –*-
'''
Created on 2012-5-26
@author: lyh
'''
def loadfile():
myfile = open("C:\Users\lyh\Desktop\log", "r")
dict = {} ...
系统重装后,需要重新安装sphinx。
由于上次系统安装了python后把系统自带的python破坏了,导致系统经常崩溃,这次吸取教训。
安装前需要预先安装的软件:
apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev
下载coreseek 3.2.14点击下载、coreseek 4.0.1
下载CORESEEK软件包后,里面自带了中文分词软件包LibMMSeg。首先需要安装LibMMSeg 。下面所有操作都是在linux平台下。在LibMMSeg根目录下执行 ./configure && make && make install完成安装。默认安装目录在/usr/local/mmseg3。在/usr/local/mmseg/bin下可以之执行mmseg命令,有相应的参数查看分词效果。 Sphinx搜索一个比较变态的地方就是按最大匹配度搜索的。比如分词中有江都,江都市,我搜江都市,是搜索不出江都的,同样如果搜索江都,也搜索不出江都 ...
一直在使用sphinx做站内搜索,索引的模式是主索引 + 增量索引,做到准实时索引。使用增量索引的方式是新建一张辅助表。刚开始的设计是按照coreseek网站推荐的取最大的id进行更新增量索引。由于前期的需求不多,一直没发现有什么问题。在提出新的需求按时间排序时,问题就出现了,取最大的id进行增量索引的话,也只是索引数据表中增加的数据,不会索引已经更新的数据。
自然而然就想到了另外一种实现方式,即以最后的更新时间作为分界点,每次建增量索引时都判断更新时间是否大于上次建主索引时的最大更新时间。这种方式的好处就是,只要你数据有更新,就能实时的进行索引。
然而,这种方式 ...
vi指令說明(完整版)
.vi 的操作模式
==============
vi 提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)
。當使用者進入 vi 後,即處在指令模式下,此刻鍵入之任何字元皆被視為
指令。在此模式下可進行刪除、修改等動作。若要輸入資料,則需進入輸入
模式。
.輸入模式
=========
如何進入輸入模式
a (append) 由游標之後加入資料。
A ...
工作中要用到RSS,趁这个机会了解了下。原文地址http://hi.baidu.com/fengfan/blog/item/ac1463278a3edf03918f9d92.html
百度空间刚出来不久,网上就流传开许多CSS修改技巧,其中比较常见的一项就是去掉“其他”里面的RSS图标那一栏。这说明许多人虽然精通CSS但还没弄清楚什么是RSS。RSS是blog最不可或缺的属性之一,它能够完全改变我们从网络获取信息的方式。
今天看到一篇How to explain RSS the Oprah way (Oprah是美国最著名的访谈节目主持人),如何用最通俗易懂的方法来解释RSS。我曾有过几次向身 ...
acegi内置了对CAS的支持。这里的CAS是3.0。建立CAS server是一个比较简单的事情。CAS server就是一个标准的war文件,把它发布就可以运行。需要做的仅仅是调整登陆和其他一些页面。先了解一下CAS如何实现SSO。
例子:原有系统A和系统B,现在在它们之间做SSO。
很显然,系统A和B都是CAS client。首先是访问系统A,干掉A的登陆页面,在A的入口判断有没有Ticket(票据),如果没有则重定向到CAS server,在CAS server提供Credential(大多数情况就是用户名和密码)。CAS server的作用非常简单:就是来验证用户密码 ...
河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小 至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当 盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。
import java.io.*;
public cl ...
快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。
快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。
这边所介绍的第一个快速排序法版本,是在多数的教科书上所提及的版本,因为它最容易理解,也最符合轴心分割与左右进行排序的概念,适合对初学者进行讲解。
解法
这边所介绍的快速演算如下:
将最左边的数设定为轴,并记录其值为 s
回圈处理:
令索引 i 从数列左方往右方找,直到找到 ...
选择排序
将要排序的对象分作两部份,一个是已排序的,一个是未排序的,从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个,例如:
排序前:70 80 31 37 10 1 48 60 33 80
[1] 80 31 37 10 70 48 60 33 80 选出最小值1
[1 10] 31 37 80 70 48 60 33 80 选出最小值10
[1 10 31] 37 80 70 48 60 33 80 选出最小值31
[1 10 31 33] 80 70 48 60 37 80 ......
[1 10 31 33 37] 70 48 60 80 80 ......
[1 1 ...
软件开发是复杂的脑力活动,这意味着管理软件开发的进度变的不那么容易。事实上,几乎每个软件公司都会面临进度管理的问题。延期的意思就是实际完成时间和计划时间不符,我们假设所有的人员都在努力工作,那么延期的 ...
package design.factory;
public interface AbstractHumanFactory {
public abstract <T extends Human> T createHuman(Class<T> c);
}
package design.factory;
public class BlackHuman implements Human {
public void getColor() {
// TODO Auto-generated method stub
System.o ...