Author: swatig0
Date: 2007-06-17 11:42:50 +0000 (Sun, 17 Jun 2007)
New Revision: 13635

Modified:
   trunk/freenet/src/freenet/clients/http/XMLSpider.java
Log:
The new XML spider puts file ids in the subindex

Modified: trunk/freenet/src/freenet/clients/http/XMLSpider.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/XMLSpider.java       2007-06-17 
11:42:03 UTC (rev 13634)
+++ trunk/freenet/src/freenet/clients/http/XMLSpider.java       2007-06-17 
11:42:50 UTC (rev 13635)
@@ -83,7 +83,7 @@
        private static final int minTimeBetweenEachIndexRewriting = 1;
        //private static final String indexFilename = "index.xml";
        private static final String DEFAULT_INDEX_DIR = "/home/swati/myindex/";
-       private static final int MAX_ENTRIES = 50;
+       private static final int MAX_ENTRIES = 5;
        private static final String pluginName = "XML spider";

        private static final String indexTitle= "This is an index";
@@ -112,9 +112,9 @@
        }

        private void startSomeRequests() {
-               try{
-                       Thread.sleep(30 * 1000); // Let the node start up
-               } catch (InterruptedException e){}
+//             try{
+//                     Thread.sleep(30 * 1000); // Let the node start up
+//             } catch (InterruptedException e){}

                FreenetURI[] initialURIs = 
core.bookmarkManager.getBookmarkURIs();
                for (int i = 0; i < initialURIs.length; i++)
@@ -420,31 +420,31 @@
                urisToNumbers = new HashMap();
                Element prefixElement = xmlDoc.createElement("prefix");
                prefixElement.setAttribute("value", prefix+"");
-               Element filesElement = xmlDoc.createElement("files"); /* 
filesElement != fileElement */
+       //      Element filesElement = xmlDoc.createElement("files"); /* 
filesElement != fileElement */

                for (int i = 0; i < uris.length; i++) {
                        urisToNumbers.put(uris[i], new Integer(i));

-                       Element fileElement = xmlDoc.createElement("file");
-
-                       fileElement.setAttribute("id", Integer.toString(i));
-                       fileElement.setAttribute("key", uris[i].toString());
-                       
-                       Long size = (Long)sizeOfURIs.get(uris[i].toString());
-
-                       if(size == null) {
-                               Logger.error(this, "Spider: size is missing");
-                       } else {
-                               fileElement.setAttribute("size", 
size.toString());
-                       }
-                       fileElement.setAttribute("mime", 
((String)mimeOfURIs.get(uris[i].toString())));
-
-                       Element titleElement = xmlDoc.createElement("option");
-                       titleElement.setAttribute("name", "title");
-                       titleElement.setAttribute("value", 
(String)titlesOfURIs.get(uris[i].toString()));
-
-                       fileElement.appendChild(titleElement);
-                       filesElement.appendChild(fileElement);
+//                     Element fileElement = xmlDoc.createElement("file");
+//
+//                     fileElement.setAttribute("id", Integer.toString(i));
+//                     fileElement.setAttribute("key", uris[i].toString());
+//                     
+//                     Long size = (Long)sizeOfURIs.get(uris[i].toString());
+//
+//                     if(size == null) {
+//                             Logger.error(this, "Spider: size is missing");
+//                     } else {
+//                             fileElement.setAttribute("size", 
size.toString());
+//                     }
+//                     fileElement.setAttribute("mime", 
((String)mimeOfURIs.get(uris[i].toString())));
+//
+//                     Element titleElement = xmlDoc.createElement("option");
+//                     titleElement.setAttribute("name", "title");
+//                     titleElement.setAttribute("value", 
(String)titlesOfURIs.get(uris[i].toString()));
+//
+//                     fileElement.appendChild(titleElement);
+//                     filesElement.appendChild(fileElement);
                }


@@ -469,7 +469,7 @@
                rootElement.appendChild(prefixElement);
                rootElement.appendChild(headerElement);

-               rootElement.appendChild(filesElement);
+               //rootElement.appendChild(filesElement);
                rootElement.appendChild(keywordsElement);

                /* Serialization */
@@ -512,10 +512,7 @@
        private synchronized void generateIndex() throws Exception{
                String[] words = (String[]) urisByWord.keySet().toArray(new 
String[urisByWord.size()]);
                Arrays.sort(words);
-                        
-                       
-                               
-               for (int i = 0; i < 100; i++) {
+               for (int i = 0; i < words.length; i++) {
                try{

                String prefix_match = getIndex(words[i]);
@@ -537,7 +534,7 @@
                        }
                        output2.close();
        }
-               catch(Exception e2){ }
+               catch(Exception e2){Logger.error(this,"The Word could not be 
added"+ e2.toString(), e2); }
                }       


@@ -608,7 +605,8 @@

                        Attr no_entries = (Attr) 
entry.getAttributes().getNamedItem("value");

-                       
+                       Element filesElement = (Element) 
root.getElementsByTagName("files").item(0);
+                       NodeList filesList = 
filesElement.getElementsByTagName("file");
                        if(Integer.parseInt(no_entries.getValue()) >= 
MAX_ENTRIES) return false;
                        else
                        {
@@ -632,8 +630,10 @@
                                }

                                Element uriElement = doc.createElement("file");
+                               Element fileElement = doc.createElement("file");
                                uriElement.setAttribute("id", x.toString());
-//
+                               fileElement.setAttribute("id", x.toString());
+                               fileElement.setAttribute("key", uri.toString());
 //                             /* Position by position */
                                HashMap positionsForGivenWord = 
(HashMap)positionsByWordByURI.get(uri.toString());
                                Integer[] positions = 
(Integer[])positionsForGivenWord.get(str);
@@ -648,8 +648,16 @@
                                }

                                
uriElement.appendChild(doc.createTextNode(positionList.toString()));
-
+                               int l;
+                       for(l = 0;l<filesList.getLength();l++)
+                               { Element file = (Element) filesList.item(l);
+                               if(file.getAttribute("id").equals(x.toString()))
+                               
+                               break;
+                               }
                                wordElement.appendChild(uriElement);
+                               if(l>=filesList.getLength())
+                               filesElement.appendChild(fileElement);
                        }
                        Element keywordsElement = (Element) 
root.getElementsByTagName("keywords").item(0);
                        keywordsElement.appendChild(wordElement);
@@ -686,7 +694,7 @@
                        return true;    
                }

-               catch(Exception e){}
+               catch(Exception e){Logger.error(this,"Word could not be added 
to the subindex"+ e.toString(), e);}
                return false;
        }
        private void split(String prefix) throws Exception
@@ -928,6 +936,9 @@

                Thread starterThread = new Thread("Spider Plugin Starter") {
                        public void run() {
+                               try{
+                                       Thread.sleep(30 * 1000); // Let the 
node start up
+                               } catch (InterruptedException e){}
                                startSomeRequests();
                        }
                };


Reply via email to