??xml version="1.0" encoding="utf-8" standalone="yes"?>国产日韩精品一区二区三区,久久久久av,精精国产xxxx视频在线野外http://www.aygfsteel.com/swordinheart/zh-cnTue, 06 May 2025 16:36:00 GMTTue, 06 May 2025 16:36:00 GMT60junipor考试心得http://www.aygfsteel.com/swordinheart/archive/2010/08/31/330345.html飞刀和雨飞刀和雨Mon, 30 Aug 2010 17:10:00 GMThttp://www.aygfsteel.com/swordinheart/archive/2010/08/31/330345.htmlhttp://www.aygfsteel.com/swordinheart/comments/330345.htmlhttp://www.aygfsteel.com/swordinheart/archive/2010/08/31/330345.html#Feedback0http://www.aygfsteel.com/swordinheart/comments/commentRss/330345.htmlhttp://www.aygfsteel.com/swordinheart/services/trackbacks/330345.html      哪位兄弟也想考该c认证,我可以分享考试用的题库。但׃不知道如何上传。留email?

飞刀和雨 2010-08-31 01:10 发表评论
]]>
Ruby和Java之间的比?一) (飞刀和雨)http://www.aygfsteel.com/swordinheart/archive/2007/05/17/118100.html飞刀和雨飞刀和雨Thu, 17 May 2007 07:18:00 GMThttp://www.aygfsteel.com/swordinheart/archive/2007/05/17/118100.htmlhttp://www.aygfsteel.com/swordinheart/comments/118100.htmlhttp://www.aygfsteel.com/swordinheart/archive/2007/05/17/118100.html#Feedback0http://www.aygfsteel.com/swordinheart/comments/commentRss/118100.htmlhttp://www.aygfsteel.com/swordinheart/services/trackbacks/118100.htmlRuby?/span>Java之间的比?/span>

Q飞刀和雨Q?/span>

1Q?nbsp;基本cd的比?/span>Ruby的基本数据类?/span>

1数值型(numeric)

Java拥有8U主ȝ?/span>, Boolean,byte,char.short,int,long,float,double.在开发中我们往往只常用到boolean, char, int & double?/span> 

Ruby则y妙的使用?/span>2c?/span> Fixnum?/span>BignumQ而且ruby不需要你d义这个数字类型,只需你输入个敎ͼruby会自动地q行必须的{换。用户不必担心数字之间的差别

 

 

ruby

Java

字符串{数字

N = ‘400’.to_i

N= new Integer(“400”).intValue( );

随机?/span>

A = rand(5)

Random random = new java,util.Random();

 int A = random.nextInt(5);

 

Ruby提供良好的数学运公式,q些?/span>java.math 所不能够比拟的

1. Ҏ的用:Math.loh(1)    Math.log10(1000)

2. 求矩늮法,求解UŞ的方E组Q复数的使用

 

2Q?span> 字符串类型(StringQ?/span>

Java中处理字W串一般都是?/span>StringcL?/span>StringBufferc,?/span>ruby的用则更加的方便和快速?/span>Ruby的字W串的大是可变的。可以无需使用更多的时间和内存?/span>

 

 

ruby

Java

打印时变量带入字W串

Puts “This is #{number}”

System.out.println(“This is ”+number);

字符与D{?/span>

?a è97

int x = (int)’a’;

大小写{?/span>

s,downcase

s.lowerCase();

或得字符串部?/span>

s[3.5]

s.indexOf(3,5);

 

 

3Q?span> 范围cd?/span>

q类的文件是java所没有的,所以对于很多开发h员来说这是一个很新的cdQ?/span>

代表了一个系列的|当然

使用s..e?/span>s…e。后面的一个不包括最后一个?/span>

(-1..-5).to_a



飞刀和雨 2007-05-17 15:18 发表评论
]]>
对Cocoon的认识和初步理解(飞刀和雨)http://www.aygfsteel.com/swordinheart/archive/2006/08/18/64348.html飞刀和雨飞刀和雨Fri, 18 Aug 2006 07:00:00 GMThttp://www.aygfsteel.com/swordinheart/archive/2006/08/18/64348.htmlhttp://www.aygfsteel.com/swordinheart/comments/64348.htmlhttp://www.aygfsteel.com/swordinheart/archive/2006/08/18/64348.html#Feedback0http://www.aygfsteel.com/swordinheart/comments/commentRss/64348.htmlhttp://www.aygfsteel.com/swordinheart/services/trackbacks/64348.html阅读全文

飞刀和雨 2006-08-18 15:00 发表评论
]]>
关于luncene 内层的研IӞ飞刀和雨Q?/title><link>http://www.aygfsteel.com/swordinheart/archive/2006/03/02/33327.html</link><dc:creator>飞刀和雨</dc:creator><author>飞刀和雨</author><pubDate>Thu, 02 Mar 2006 15:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/swordinheart/archive/2006/03/02/33327.html</guid><wfw:comment>http://www.aygfsteel.com/swordinheart/comments/33327.html</wfw:comment><comments>http://www.aygfsteel.com/swordinheart/archive/2006/03/02/33327.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/swordinheart/comments/commentRss/33327.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/swordinheart/services/trackbacks/33327.html</trackback:ping><description><![CDATA[     摘要: 关于luncene 内层的研I?Q飞刀和雨Q?  q是很久以前做lucene 时的ȝQ现在已l不用去研究那些代码Q但q是分n出来l大家以帮助。谢?.       从Index开?无论哪种搜烦引擎Q都会需要自Z个indexQ所有的搜词准确率及快速性很大程度上取决于这cȝ问题。因此在建烦引文件的时候,我们首先要弄清楚l...  <a href='http://www.aygfsteel.com/swordinheart/archive/2006/03/02/33327.html'>阅读全文</a><img src ="http://www.aygfsteel.com/swordinheart/aggbug/33327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/swordinheart/" target="_blank">飞刀和雨</a> 2006-03-02 23:31 <a href="http://www.aygfsteel.com/swordinheart/archive/2006/03/02/33327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图解安装 netgear WGR614 无线路由http://www.aygfsteel.com/swordinheart/archive/2006/02/13/30476.html飞刀和雨飞刀和雨Mon, 13 Feb 2006 09:11:00 GMThttp://www.aygfsteel.com/swordinheart/archive/2006/02/13/30476.htmlhttp://www.aygfsteel.com/swordinheart/comments/30476.htmlhttp://www.aygfsteel.com/swordinheart/archive/2006/02/13/30476.html#Feedback0http://www.aygfsteel.com/swordinheart/comments/commentRss/30476.htmlhttp://www.aygfsteel.com/swordinheart/services/trackbacks/30476.html阅读全文

飞刀和雨 2006-02-13 17:11 发表评论
]]>
关于Google的Suggest功能的实?飞刀和雨)http://www.aygfsteel.com/swordinheart/archive/2005/11/04/18164.html飞刀和雨飞刀和雨Fri, 04 Nov 2005 08:45:00 GMThttp://www.aygfsteel.com/swordinheart/archive/2005/11/04/18164.htmlhttp://www.aygfsteel.com/swordinheart/comments/18164.htmlhttp://www.aygfsteel.com/swordinheart/archive/2005/11/04/18164.html#Feedback29http://www.aygfsteel.com/swordinheart/comments/commentRss/18164.htmlhttp://www.aygfsteel.com/swordinheart/services/trackbacks/18164.html关于Google?/SPAN>Suggest功能的实?/SPAN>

@@@使用Ajax?/SPAN>Lucene对其q行完美实现@@@ (飞刀和雨)

 

大家都对Google?/SPAN>suggest的功能大概很有兴吧Q我们觉得既?/SPAN>Google做的出,那么我们也能做出来,先对其进行分析,1.对于|页客户端的按键的动态变化,Ajax是最好的选择Q?/SPAN> google_suggest.JPG

2.如果数据库的选择Q则可以有多U选择得,BerkeleyDB, Derby甚至自己做个txt文本文gQ把所需要的单词?/SPAN>result数目攑֜文本文g里都能够实现Q但今天我们有了一个很好的索引工具Lucene。加?/SPAN>LuceneҎ的吸引力Q因此今天我们用上大炮,卸去鸟枪。开始我们的开发之路?/SPAN>

 

首先Q我们先建立?/SPAN>demo的框Ӟ我就做了个这L一?/SPAN>html文gQ用了一?/SPAN>form,一?/SPAN>search_suggest.JPG 

输入的文本框Q一个多选项和一个确认按键。后面两个没什么好说的Q主要是文本框的设计Q我做了以下的定义,<input  type="text" size=60 id="userid" name="q" autocomplete="off" onKeyUp="validate(event);"> q样autocompleteQ?/SPAN>off指取消网늚cacheQ这样就不会弹出以前打过的字的窗口,造成混ؕ?/SPAN>onKeyUp是实?/SPAN>ajax的关键,相应键盘输入的操作?/SPAN>

 

其次Q开始我们的Ajax了,֐思义Q?/SPAN>Ajax指异步的javascript?/SPAN>xml. 我们的所有工作都会在javascript中完成,至于ajax原理Q很多地斚w有很详细的解释,q里指列应用了?/SPAN>

 validate(e){

        var key=e.KeyCode;  //获得输入的键?/SPAN>

  //定义按键只对字母数字Q空|回RQ?/SPAN>Ins?/SPAN>del有效Q可以避免一些无效的相应Qƈ//转发urll?/SPAN>servlet,那么我们只要{?/SPAN>servletq回xml可以了

  if (key>=48 && key<=90 || key==8 || key==32 || key== 45 || key==46){

       var url = "LuceneSearch?id=" + encodeURI(idField.value);

            req.open("GET", url, true);

          req.onreadystatechange = processRequest;

           req.send(null);

    }

}

q时Q可以通过Ajax?/SPAN>3?/SPAN>req的请求进行向服务器发送,我们q里只要{待服务器返回的xml可以了?/SPAN>

       function processRequest(){

             if(req.readyState==4){

                    if(req.status==200){

                           parseMessages();

                  }else{

                           clearTable();

                     }

              }

}

q里我们通过q回的状?/SPAN>, 得到一?/SPAN>XmlHttp?/SPAN>readyState=4表示servlet的操作结束,status

=200则表C?/SPAN>Http得到正常的返回,q时调用parseMessage()可以对所得到?/SPAN>XmlHttpq行操作Q?/SPAN>

      function parseMessages(){

              var products = req.responseXML.getElementsByTagName("products")[0];

              for (loop=0;loop<products.childNodes.length);loop++){

                     var product = products.childNodes[loop];

                     var productname = product.getElementsByTagName("pname")[0];

                     var productnumber = product.getElementsByTagName("pnumber")[0];

              }

}

q里我们在javascipt里就得到了我们所需要的词的name?/SPAN>number,然后只要在javascript里填入一些特效,便能很方便的实现Google?/SPAN>suggest.

 

其次Q我们所需要的׃~写我们现在?/SPAN>LuceneSearch?/SPAN>servlet. q里因ؓ通过get方式传递,q不对于开?/SPAN>j2ee的程序员来说Q就是小菜一,我们只要定义doGet(req, res)p可以了实C。从q里我们得到?/SPAN>Text文本框里的字W串倹{?/SPAN>

public class LuceneSearch extends HttpServlet{

       public  void doGet(HttpServletRequest request, HttpServletResponse  response)

    throws IOException, ServletException {

              String targetId = request.getParameter("id");

       }

}

然后我们需要对q些字符串进行清理,L些无效的W号Q然后把多余I格合ƈQ成ZU真正的需要的字符Ԍ然后我们需要用Lucene来进行搜索,先把Document把数据从数据库里d来,然后制成Index。然后用Search来进行搜索,q里Lucene提供了很好的搜烦方式Q搜索分两种方式Q一U是单个单词Q这个就比较好办Q?/SPAN>Lucene 提供了开头匹配的ҎPrefixQuery(), 直接套用可以了

                      PrefixQuery query = new PrefixQuery(new Term("keyword", targetId));

                         IndexSearcher searcher = new IndexSearcher(directory);

                         Hits hits = searcher.search(query,sort);

                         for(int i=0; i<hits.length();i++){

                                          sb.append("<product>");

                                        sb.append("<pname>"+hits.doc(i).get("keyword")+"</pname>");

                                        sb.append("<pnumber>"+hits.doc(i).get("number")+"</pnumber>");

                                        sb.append("</product>");

                            }

q样我们把搜烦到的词和数量都放q?/SPAN>Xml里了q样出来了?/SPAN>

search_demo1.JPG

我们q可以注意到如果所需要的词ƈ不在开头也能得到实现?/SPAN>

 

对于词组比较费,因ؓ首先要保证前面词的位|性,可以L攄Q最后一个词则必M开头ؓ基准q行模糊查找Q这h能实现其功能Q还?/SPAN>Luceneq是考虑Cq点Q有?/SPAN>PhrasePrefixQuery()的方法,E稍加以改进便可以实玎ͼ

              //首先要把词组?/SPAN>split以空格分开

              String[] targetIdArray = targetId.split(" ");

               PhrasePrefixQuery query = new PhrasePrefixQuery();

               for(int i=0; i<targetIdArray.length-1;i++){

                   query.add(new Term("keyword",targetIdArray[i]));

               }

               query.setSlop(4);        //讄词前后位|移动范围?/SPAN>

               LinkedList termsWithPrefix = new LinkedList();

               IndexReader ir = IndexReader.open(directory);

               TermEnum te = ir.terms(new Term("keyword", targetIdArray[targetIdArray.length-1]));

               do {

                  if (te.term().text().startsWith(targetIdArray[targetIdArray.length-1])) {

                        termsWithPrefix.add(te.term());

                  }

               } while (te.next());

q样我们先得到最后一个单词ؓ开头的词,然后加到PrasePrefixQuery?/SPAN>

               query.add((Term[])termsWithPrefix.toArray(new Term[0]));

               Hits hits;

               hits = searcher.search(query, sort);

               for(int i=0; i<(hits.length()>20?20:hits.length());i++){

                     sb.append("<product>");

                     sb.append("<pname>"+hits.doc(i).get("keyword")+"</pname>");

                     sb.append("<pnumber>"+hits.doc(i).get("popularity")+"</pnumber>");

                     sb.append("</product>");

              }

q样我们可以得到我们所需要的词组了。如图所C,很方便吧Q这里就基本完成?/SPAN>google

search_demo2.JPG

所代表?/SPAN>suggest功能Q当Ӟjavascript里面q有一些上下键Q鼠标移动事件的触发Q加在一起就会把我们的网弄得很完美了。但q些都不是重点,我们主要是对门户|站功能的实玎ͼ如果有问题和Q可以给我留aQ谢谢?/SPAN>



飞刀和雨 2005-11-04 16:45 发表评论
]]>
վ֩ģ壺 ɽ| | | »| | ƽ˳| ʯ| ֳ| Ϊ| | ɽ| ˮ| | | | ׿| ¡| | | | | | | Ϫ| ϰ| | պ| ƽ| ֶ| | ǿ| ϲ| | | | | | | | Զ| |