Re: Solr client on VMS

Liste des GroupesRevenir à co vms 
Sujet : Re: Solr client on VMS
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vms
Date : 25. Dec 2024, 19:43:42
Autres entêtes
Organisation : SunSITE.dk - Supporting Open source
Message-ID : <676c525e$0$712$14726298@news.sunsite.dk>
References : 1
User-Agent : Mozilla Thunderbird
On 12/6/2024 7:49 PM, Arne Vajhøj wrote:
I have been looking a bit at Solr recently. For those that don't
know Solr, then it is a text search engine - or more accurate it
is a web frontend for the Lucene text search engine. Both
Solr and Lucene are Apache projects (open source).
 Solr is basically exposing a web API, so anything that can do
HTTP POST can use Solr. But clients encapsulating the HTTP
stuff does exist for many languages. On VMS then both JVM languages
and Python should be able to use a standard client.
Java:
$ type Load.java
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
public class Load {
     private static SolrInputDocument create(int id, String names, String moves) {
         SolrInputDocument res = new SolrInputDocument();
         res.addField("id", id);
         res.addField("names", names);
         res.addField("moves", moves);
         return res;
     }
     public static void main(String[] args) throws IOException, SolrServerException {
         HttpSolrClient client = new HttpSolrClient.Builder("http://arnepc5:8888/solr").build();
         client.deleteByQuery("chessopening", "*:*");
         client.add("chessopening", create(1, "Spanish defense, Ruy Lopez", "1. e4, e5, 2. Nf3, Nc6, 3. Bb5,"));
         client.add("chessopening", create(2, "French defense", "1. e4, e6, 2. d4, d5,"));
         client.add("chessopening", create(3, "Sicilian defense", "1. e4, c5,"));
         client.add("chessopening", create(4, "Queens gambit", "1. d4, d5, 2. c4,"));
         client.add("chessopening", create(5, "Dutch defense", "1. d4, f5,"));
         client.add("chessopening", create(6, "Reti opening", "1. Nf3, d5, 2. c4,"));
         client.commit("chessopening");
         client.close();
     }
}
$ javac -cp solrj/* Load.java
$ java -cp .:solrj/* Load
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
$ type Search.java
import java.io.IOException;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
public class Search {
     private static void dump(HttpSolrClient client, String searchterm) throws SolrServerException, IOException {
         System.out.printf("search for : %s\n",  searchterm);
         SolrQuery query = new SolrQuery();
         query.setParam("df", "alltext");
         query.setQuery(searchterm);
         query.addField("names");
         query.addField("moves");
         SolrDocumentList res = client.query("chessopening", query).getResults();
         for(SolrDocument doc : res) {
             String names = (String)doc.getFirstValue("names");
             String moves = (String)doc.getFirstValue("moves");
             System.out.printf("  %s - %s\n",  names, moves);
         }
     }
     public static void main(String[] args) throws IOException, SolrServerException {
         HttpSolrClient client = new HttpSolrClient.Builder("http://arnepc5:8888/solr").build();
         // all
         dump(client, "*:*");
         // one
         dump(client, "names:defense");
         dump(client, "moves:d4");
         // dual
         dump(client, "alltext:defense");
         dump(client, "alltext:d4");
         dump(client, "defense"); // default field
         dump(client, "d4"); // default field
         // boolean
         dump(client, "names:defense moves:d4"); // implicit or
         dump(client, "names:defense AND moves:d4"); // and
         dump(client, "names:defense NOT moves:d4"); // not
         dump(client, "defense d4"); // default field + implicit or
         dump(client, "defense AND d4"); // default field + and
         dump(client, "defense NOT d4"); // default field + not
         // wildcard
         dump(client, "names:def*");
         dump(client, "moves:N*");
         client.close();
     }
}
$ javac -cp solrj/* Search.java
$ java -cp .:solrj/* Search
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
search for : *:*
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
   French defense - 1. e4, e6, 2. d4, d5,
   Sicilian defense - 1. e4, c5,
   Queens gambit - 1. d4, d5, 2. c4,
   Dutch defense - 1. d4, f5,
   Reti opening - 1. Nf3, d5, 2. c4,
search for : names:defense
   French defense - 1. e4, e6, 2. d4, d5,
   Sicilian defense - 1. e4, c5,
   Dutch defense - 1. d4, f5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : moves:d4
   Dutch defense - 1. d4, f5,
   Queens gambit - 1. d4, d5, 2. c4,
   French defense - 1. e4, e6, 2. d4, d5,
search for : alltext:defense
   Sicilian defense - 1. e4, c5,
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : alltext:d4
   Dutch defense - 1. d4, f5,
   Queens gambit - 1. d4, d5, 2. c4,
   French defense - 1. e4, e6, 2. d4, d5,
search for : defense
   Sicilian defense - 1. e4, c5,
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : d4
   Dutch defense - 1. d4, f5,
   Queens gambit - 1. d4, d5, 2. c4,
   French defense - 1. e4, e6, 2. d4, d5,
search for : names:defense moves:d4
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
   Queens gambit - 1. d4, d5, 2. c4,
   Sicilian defense - 1. e4, c5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : names:defense AND moves:d4
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
search for : names:defense NOT moves:d4
   Sicilian defense - 1. e4, c5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : defense d4
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
   Queens gambit - 1. d4, d5, 2. c4,
   Sicilian defense - 1. e4, c5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : defense AND d4
   Dutch defense - 1. d4, f5,
   French defense - 1. e4, e6, 2. d4, d5,
search for : defense NOT d4
   Sicilian defense - 1. e4, c5,
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
search for : names:def*
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
   French defense - 1. e4, e6, 2. d4, d5,
   Sicilian defense - 1. e4, c5,
   Dutch defense - 1. d4, f5,
search for : moves:N*
   Spanish defense, Ruy Lopez - 1. e4, e5, 2. Nf3, Nc6, 3. Bb5,
   Reti opening - 1. Nf3, d5, 2. c4,
Arne

Date Sujet#  Auteur
7 Dec 24 * Solr client on VMS8Arne Vajhøj
10 Dec 24 +- Re: Solr client on VMS1Arne Vajhøj
25 Dec 24 +* Re: Solr client on VMS2Arne Vajhøj
2 Jan 25 i`- Re: Solr client on VMS1Simon Clubley
25 Dec 24 +* Re: Solr client on VMS2Arne Vajhøj
25 Dec 24 i`- Re: Solr client on VMS1Lawrence D'Oliveiro
25 Dec 24 +- Re: Solr client on VMS1Arne Vajhøj
27 Dec 24 `- Re: Solr client on VMS1Arne Vajhøj

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal