The lucene info is: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.1 Created-By: Apache Jakarta
Name: org/apache/lucene Specification-Title: Lucene Search Engine Specification-Version: 1.4.3 Specification-Vendor: Lucene Implementation-Title: org.apache.lucene Implementation-Version: build 2004-11-29 15:13:05 Implementation-Vemdpr: Lucene Its still not keeping the segments file around. Is that necessary? It must be because the update is failing with "can't find segements file" warning. Can I grab the segments file while the indexing is going on before it gets deleted? Does the segments file change through the indexing process? Here is a code snippet.. any problems here? This works fine on my box. Its mostly database stuff.. but something is causing this problem. public static void index() throws Exception { String newPath = getIndexLocation() + File.separator + System.currentTimeMillis(); IndexWriter writer = new IndexWriter(new File(newPath), analyzer, true); writer.setUseCompoundFile(false); DBMgr dbm = new DBMgr(); DBMgr dbm2 = new DBMgr(); ResultSet rs = null, rs2=null; Document doc=null; int cnt = 0; String lastID="-1", thisID; String p; int CNT=0; String catTmp;//Cable Pathway[980455819]{0}|Bolts and Installation[980455820]{1}|Carriage Bolts[980455821]{1}| String priceBook; String priceTMP = ""; try { dbm.runUpdate("update co_item_cat_assc set ancestry = dbo.makeCatTag2(category)"); dbm.runUpdate("update co_category_products set ancestry = dbo.makeCatTag2(category)"); dbm.runUpdate("update co_category_products set ndAncestry = dbo.makeCatTag2ND(category)");//for NEW Design rs2 = dbm2.runQuery("select priceBook from co_cart_prefs"); if (rs2.next()) { priceBook = rs2.getString("priceBook"); } else { priceBook = "Sell_Price"; } rs = dbm.runQuery("select i.smartpart_num as id, i.cartable, i.item_num, i.keyword, i.description, i.shortdesc, i.ecatlongdesc, c.description as cDesc, c.keywords as cKey, a.ancestry, a.seq, i.price, i.image, i.ecatlink from co_item_master i, co_item_cat_assc a, co_prod_cat c where i.salable_ind = 'Y' and i.smartpart_num = a.item and c.category_id = a.category order by item_num"); while (rs.next()) { thisID = rs.getString("id"); if (!thisID.equals(lastID)) { if (!lastID.equals("-1")) { writer.addDocument(doc); } doc = new Document(); doc.add(Field.Keyword(CARTABLE, rs.getString("cartable"))); doc.add(Field.Keyword(IDENTITY, thisID)); doc.add(Field.Text(NAME, rs.getString("item_num"))); doc.add(Field.Text(KW, StringFormat.processString(rs.getString("keyword"), StringFormat.WEB_DISPLAY))); doc.add(Field.Text(STND_DESC, StringFormat.processString(rs.getString("description"), StringFormat.WEB_DISPLAY))); doc.add(Field.Text(SD, StringFormat.processString(rs.getString("shortdesc"), StringFormat.WEB_DISPLAY))); doc.add(Field.Text(LD, StringFormat.processString(rs.getString("ecatlongdesc"), StringFormat.WEB_DISPLAY))); doc.add(Field.Text(CATNAME, StringFormat.processString(rs.getString("cDesc")))); doc.add(Field.Text(CATKEY, StringFormat.processString(rs.getString("cKey")))); doc.add(Field.Text(CAT, StringFormat.processString(rs.getString("ancestry")))); p = rs.getString("seq"); try { doc.add(Field.Keyword(SEQ, p)); } catch (Exception ep) { doc.add(Field.Keyword(SEQ, "0")); } /* p = rs.getString("price"); try { doc.add(Field.Keyword(PRICE, "" + Float.parseFloat(p))); } catch (Exception ep) { doc.add(Field.Keyword(PRICE, "0")); } */ doc.add(Field.UnIndexed(PRODUCT, "0")); doc.add(Field.UnIndexed(IMAGE, StringFormat.processString(rs.getString("image")))); doc.add(Field.UnIndexed(LINK, StringFormat.processString(rs.getString("ecatlink")))); priceTMP = ""; if (priceBook.equals("Price") || priceBook.equals("Cost") || priceBook.equals("Sell_Price")) { rs2 = dbm2.runQuery("select " + priceBook + " as blue from co_item_master where smartpart_num = '" + thisID + "'"); if (rs2.next()) { priceTMP = rs2.getString("blue"); } } else { rs2 = dbm2.runQuery("select pim.price from CO_PRICE_ITEM_MASTER pim, co_cart_prefs p, co_item_master i where pim.smartpart_num = i.smartpart_num and i.smartpart_num = '" + thisID + "' and convert(varchar, pim.price_book_id) = p.priceBook"); if (rs2.next()) { priceTMP = rs2.getString("price"); } } try { doc.add(Field.Keyword(PRICE, "" + Float.parseFloat(priceTMP))); } catch (Exception e) { doc.add(Field.Keyword(PRICE, "0")); } } else { doc.add(Field.Text(CATNAME, StringFormat.processString(rs.getString("cDesc")))); doc.add(Field.Text(CATKEY, StringFormat.processString(rs.getString("cKey")))); doc.add(Field.Text(CAT, StringFormat.processString(rs.getString("ancestry")))); p = rs.getString("seq"); try { doc.add(Field.Keyword(SEQ, p)); } catch (Exception ep) { doc.add(Field.Keyword(SEQ, "0")); } } lastID = thisID; } writer.addDocument(doc); lastID="-1"; rs = dbm.runQuery("select p.product_id, p.product_desc, p.keyword, p.shortdesc, p.longdesc, c.description as cDesc, c.keywords as cKey, cp.ancestry, cp.seq, p.product_img_file from co_prod p, co_category_products cp, co_prod_cat c where p.saleable = 1 and p.product_id = cp.product and cp.category = c.category_id order by p.product_id"); while (rs.next()) { thisID = rs.getString("product_id"); if (!thisID.equals(lastID)) { if (!lastID.equals("-1")) { writer.addDocument(doc); } doc = new Document(); doc.add(Field.Keyword(CARTABLE, "1")); doc.add(Field.Text(IDENTITY, thisID)); doc.add(Field.Text(NAME, StringFormat.processString(rs.getString("product_desc")))); doc.add(Field.Text(KW, StringFormat.processString(rs.getString("keyword")))); doc.add(Field.Text(SD, StringFormat.processString(rs.getString("shortdesc")))); doc.add(Field.Text(LD, StringFormat.processString(rs.getString("longdesc")))); doc.add(Field.Text(CATNAME, StringFormat.processString(rs.getString("cDesc")))); doc.add(Field.Text(CATKEY, StringFormat.processString(rs.getString("cKey")))); doc.add(Field.Text(CAT, StringFormat.processString(rs.getString("ancestry")))); p = rs.getString("seq"); try { doc.add(Field.Keyword(SEQ, p)); } catch (Exception ep) { doc.add(Field.Keyword(SEQ, "0")); } doc.add(Field.Keyword(PRICE, "0")); doc.add(Field.UnIndexed(PRODUCT, "1")); doc.add(Field.UnIndexed(IMAGE, StringFormat.processString(rs.getString("product_img_file")))); } else { doc.add(Field.Text(CATNAME, StringFormat.processString(rs.getString("cDesc")))); doc.add(Field.Text(CATKEY, StringFormat.processString(rs.getString("cKey")))); doc.add(Field.Text(CAT, StringFormat.processString(rs.getString("ancestry")))); p = rs.getString("seq"); try { doc.add(Field.Keyword(SEQ, p)); } catch (Exception ep) { doc.add(Field.Keyword(SEQ, "0")); } } lastID = thisID; } writer.addDocument(doc); dbm.runUpdate("update co_cart_prefs set indexUpdated = getDate()"); rs = dbm.runQuery("select indexUpdated, tablesUpdated from co_cart_prefs "); if (rs.next()) { setIndexUpdated(new Date(DateFormat.string_Long(rs.getString("indexUpdated")))); setTablesUpdated(new Date(DateFormat.string_Long(rs.getString("tablesUpdated")))); } } catch (Exception e) { System.out.println("Indexer index err: " + e); } finally { try { rs.close(); } catch (Exception e) {} } writer.optimize(); writer.close(); SearchSO.setSearcher(newPath); File[] subFiles; File[] subDirs = new File(getIndexLocation()).listFiles(); for (int i=0;i<subDirs.length;i++) { if (subDirs[i].isDirectory()) { if (!newPath.equals(subDirs[i].getPath())) { subFiles = subDirs[i].listFiles(); for (int j=0;j<subFiles.length;j++) { subFiles[j].delete(); } subDirs[i].delete(); } } } } -----Original Message----- From: John Powers [mailto:[EMAIL PROTECTED] Sent: Thursday, January 26, 2006 9:07 PM To: java-user@lucene.apache.org Subject: problem updating a document: no segments file? Hello, I have a couple instances of lucene. I just altered on implementation and now its not keeping a segments file. while indexing occurs, there is a segment file. but once its done, there isn't. all the other indexes have one. the problem comes when i try to update a document, it says "segments file not found" and that stops it. this code was working fine on my development box, but now i go to production its not keeping that segments file. and, it searches just fine. i can reindex over and over, and it keeps disappearing. any ideas? --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]