-2

我做了一个 java 应用程序,可以索引我的最后一行(这就是我的 wabt)

但是现在我问这个角色的索引是否有任何意义!你能给我指示如何做到这一点,或者简单的代码来改变我的代码吗?

;
public class indexSolr {
    private  Connection conn = null;
    private static HttpSolrServer  server;
      private Collection docs = new ArrayList();
      private int _totalSql = 0;
      private long _start = System.currentTimeMillis();


    public static void main(String[] args) throws SolrServerException, IOException, SQLException
    { String url = "http://localhost:8983/solr/db";


                   indexSolr idxer = new indexSolr(url);

  idxer.doSqlDocuments();

  idxer.endIndexing();


     }

    private void doSqlDocuments() throws SQLException {

        try {
            Class.forName("org.postgresql.Driver");

            conn = DriverManager.getConnection(
                    "jdbc:postgresql://localhost:5432/biz_cat",
                    "postgres", "pos");
            java.sql.Statement st = null;
           st = conn.createStatement();
           ResultSet rs =   st.executeQuery("select * from pl_biz order by id DESC LIMIT 1");

          while (rs.next()) {

            SolrInputDocument doc = new SolrInputDocument();

            Integer  id = rs.getInt("id");
            String name = rs.getString("name");
            String midname = rs.getString("midname");
            String lastname = rs.getString("lastname");
            String frlsname = rs.getString("frlsname");
            String biz_subject = rs.getString("biz_subject");
            String company_type = rs.getString("company_type");
            String obshtina = rs.getString("obshtina");
            String main_office_town = rs.getString("main_office_town");
            String address = rs.getString("address");
            String role = rs.getString("role");
            String country = rs.getString("country");
            String nace_code = rs.getString("nace_code");
            String nace_text = rs.getString("nace_text");
            String zip_code = rs.getString("zip_code");
            String phone = rs.getString("phone");
            String fax = rs.getString("fax");
            String email = rs.getString("email");
            String web = rs.getString("web");
            String location = rs.getString("location");
            String geohash = rs.getString("geohash");
            Integer popularity = rs.getInt("popularity");

            doc.addField("id", id);
            doc.addField("name", name);
            doc.addField("midname", midname);
            doc.addField("lastname", lastname);
            doc.addField("frlsname", frlsname);
            doc.addField("biz_subject", biz_subject);
            doc.addField("company_type", company_type);
            doc.addField("obshtina", obshtina);
            doc.addField("main_office_town", main_office_town);
            doc.addField("address", address);
            doc.addField("role", role);
            doc.addField("country", country);
            doc.addField("nace_code", nace_code);
            doc.addField("nace_text", nace_text);
            doc.addField("zip_code", zip_code);
            doc.addField("phone", phone);
            doc.addField("fax", fax);
            doc.addField("email", email);
            doc.addField("web", web);
            doc.addField("location", location);
            doc.addField("geohash", geohash);
            doc.addField("popularity", popularity);


            docs.add(doc);
             ++_totalSql;


            if (docs.size() > 1) {
                 // Commit within 5 minutes.
                UpdateResponse resp = server.add(docs);
                System.out.println (resp);
              if (resp.getStatus() != 0) {
                log("Some horrible error has occurred, status is: " +
                      resp.getStatus());
              }
              docs.clear();
            }
          }
        }
        catch (Exception ex)
        {
          ex.printStackTrace();
        }
        finally {
          if (conn != null) {
            conn.close();
          }
        }


    }

     private void endIndexing() throws IOException, SolrServerException {
            if (docs.size() > 0) { // Are there any documents left over?
              server.add(docs, 300000); // Commit within 5 minutes
            }
            try 
            {
            server.commit(); 

            }
            catch (Exception ex)
            {

                ex.printStackTrace();
            }


            long endTime = System.currentTimeMillis();
            log("Total Time Taken: " + (endTime - _start) +
                 " milliseconds to index " + _totalSql +
                " SQL rows" );
          }





          private indexSolr(String url) throws IOException, SolrServerException {
              // Create a multi-threaded communications channel to the Solr server.
          try {    
            server = new HttpSolrServer(url);

            server.setSoTimeout(1000);  // socket read timeout
            server.setConnectionTimeout(1000);
            server.setMaxRetries(1); 


          }
               catch (Exception ex)
               {

                   ex.printStackTrace();

               }
          }

}
4

1 回答 1

1

这就是从 solr 中删除 id 为 30682 的行的索引所需要做的全部工作

SolrServer solrServer;
            String url = "http://localhost:8983/solr/db";
            solrServer = new HttpSolrServer(url);
            solrServer.deleteByQuery("id:30682");
            solrServer.commit();
            System.out.println("index deleted");

我希望它可以帮助某人

于 2013-04-24T13:24:42.880 回答