[lucene] Lucene的疑难杂症?
mniz
2010-01-07
至于你说的重用field 应该是有用的,你测试的有没有考虑并发的情况下?
|
|
imjl
2010-01-08
mniz 写道 至于你说的重用field 应该是有用的,你测试的有没有考虑并发的情况下?
你怎么测试并发的呢? 你们目前的并发情况是怎么样的呢,增量索引间隔时间是多久一次呢?增量大概多少数据呢? 要做多大规模的搜索,用多少台怎么样配置的服务器呢,什么操作系统? 如何处理索引同步,更新,异常,预热,互备,测试这些问题呢? 查询结果如何排序?比如用lucene默认的score 你们目前搜索结果是怎么个呈现,比如搜索出结果就行,,比如类似taobao的搜索有分类统计 |
|
shadowlin
2010-01-08
mniz 写道 至于你说的重用field 应该是有用的,你测试的有没有考虑并发的情况下?
并发索引么?我的数据量不大,所以就没用并发索引。不过我觉得在field重用上也不会有太大的区别吧。。 不知道你测试过没有,重用field和不重用。内存和时间开销上有啥区别不?最好能给下数据。 另外发个我重用field写的一个工具类。大家帮看下是不是那个东西写的有问题。。 public class MappedSingeltonFiled { Map<String,Field> filedMap=new HashMap<String,Field>(); Map<String,NumericField> numericFieldMap=new HashMap<String,NumericField>(); public Field field(String fieldName,String value,Store store,Index index){ if(filedMap.containsKey(fieldName)){ Field field=filedMap.get(fieldName); field.setValue(value); return field; }else{ Field field=new Field(fieldName,value,store, index); filedMap.put(fieldName, field); return field; } } public NumericField numericField(String numericFieldName,int value,Store store,boolean index){ if(numericFieldMap.containsKey(numericFieldName)){ NumericField numericFieldield=numericFieldMap.get(numericFieldName); return numericFieldield.setIntValue(value); }else{ NumericField numericField=new NumericField(numericFieldName, store, index).setIntValue(value); numericFieldMap.put(numericFieldName, numericField); return numericField; } } } 用的时候就这样 private MappedSingeltonFiled mappedSingeltonFiled=new MappedSingeltonFiled(); public void xxxFunction(){ ... document.add(mappedSingeltonFiled.field(VideoInfoDBSearchFieldName.VIDEOTYPE,videoType,Field.Store.YES, Field.Index.ANALYZED)); ... } 我测了2万条数据重用不重用都没区别。。郁闷。 |
|
mniz
2010-01-08
引用 你怎么测试并发的呢? 你们目前的并发情况是怎么样的呢,增量索引间隔时间是多久一次呢?增量大概多少数据呢? 要做多大规模的搜索,用多少台怎么样配置的服务器呢,什么操作系统? 如何处理索引同步,更新,异常,预热,互备,测试这些问题呢? 查询结果如何排序?比如用lucene默认的score 你们目前搜索结果是怎么个呈现,比如搜索出结果就行,,比如类似taobao的搜索有分类统计 我也不是并发索引,索引那个问题到不是很大 本来是打算用socket 多线程来解决的并发的情况的 我打算在晚上2-3点建立索引,我们的数据增幅每天不会太大,5000左右,索引规模目前可能只有几百万左右,还有个需要合并进来,那个有几千万,用户数大概几万吧,不过不知道并发是多少,到时候具体的在看看 操作系统Linux 排序我打算用lucene 的score 我们的排序比较简单,安一个字段,到时候在看看 至于结果什么的,我不需要去管,呈现部分由PHP去布局 其它的暂时还没想到 另外想问下,你们如何去做 纠错功能 比如说, 引用 我输入: 独自痛怎么办 下面就会提示:您是否想要搜索:肚子痛怎么办 |
|
imjl
2010-01-08
我说得纠错功能,,是索引坏了的补救
你说的纠错,,可以从关键词,拼音,搜索热门来考虑,,, 不过觉得我还不如做相关推荐来得好,打错的毕竟少阿,有的故意打错 |
|
mniz
2010-01-08
用拼音我是觉着不可能 热门到可以考虑 因为用因为的那就没法子了
对了,类似百度的那个,怎么去实现,思路能说的详细点么? 就是上面输入框里面输入一个词,然后在页面的下面出现很多类似的关键词 当然跟热门肯定也有关系,就是那个具体点 你看我的思路是这样的,把输入的词,差分,然后在根据索引里面去匹配, 根据最热门的词语展示出来 但是问题是怎么个匹配法 |