Adding json.nl=map instead of wt.json returns results in xml format. <?xml version="1.0" encoding="UTF-8"?><response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">2</int> </lst> <lst name="analysis"> <lst name="field_types"> <lst name="inferlytics"> <lst name="index"> <str name="org.apache.lucene.analysis.pattern.PatternReplaceCharFilter" /> <str name="java.io.StringReader" /> <arr name="org.apache.lucene.analysis.standard.StandardTokenizer" /> <arr name="org.apache.lucene.analysis.core.LowerCaseFilter" /> <arr name="org.apache.lucene.analysis.en.EnglishMinimalStemFilter" /> <arr name="org.apache.lucene.analysis.shingle.ShingleFilter" /> <arr name="org.apache.lucene.analysis.pattern.PatternReplaceFilter" /> <arr name="org.apache.solr.handler.AnalysisRequestHandlerBase$ListBasedTokenStream" /> <arr name="org.apache.lucene.analysis.en.PorterStemFilter" /> </lst> <lst name="query"> <str name="org.apache.lucene.analysis.pattern.PatternReplaceCharFilter">playing</str> <str name="java.io.StringReader">playing</str> <arr name="org.apache.lucene.analysis.standard.StandardTokenizer"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> </arr> </lst> </arr> <arr name="org.apache.lucene.analysis.core.LowerCaseFilter"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> </arr> </lst> </arr> <arr name="org.apache.lucene.analysis.en.EnglishMinimalStemFilter"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <bool name="org.apache.lucene.analysis.tokenattributes.KeywordAttribute#keyword">false</bool> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> <int>1</int> </arr> </lst> </arr> <arr name="org.apache.lucene.analysis.shingle.ShingleFilter"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> <int>1</int> <int>1</int> </arr> <bool name="org.apache.lucene.analysis.tokenattributes.KeywordAttribute#keyword">false</bool> </lst> </arr> <arr name="org.apache.lucene.analysis.pattern.PatternReplaceFilter"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> </arr> <bool name="org.apache.lucene.analysis.tokenattributes.KeywordAttribute#keyword">false</bool> </lst> </arr> <arr name="org.apache.solr.handler.AnalysisRequestHandlerBase$ListBasedTokenStream"> <lst> <str name="text">playing</str> <str name="raw_bytes">[70 6c 61 79 69 6e 67]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> </arr> <bool name="org.apache.lucene.analysis.tokenattributes.KeywordAttribute#keyword">false</bool> </lst> </arr> <arr name="org.apache.lucene.analysis.en.PorterStemFilter"> <lst> <str name="text">plai</str> <str name="raw_bytes">[70 6c 61 69]</str> <int name="start">0</int> <int name="end">7</int> <int name="org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute#positionLength">1</int> <str name="type"><ALPHANUM></str> <bool name="org.apache.lucene.analysis.tokenattributes.KeywordAttribute#keyword">false</bool> <int name="position">1</int> <arr name="positionHistory"> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> <int>1</int> </arr> </lst> </arr> </lst> </lst> </lst> <lst name="field_names" /> </lst></response>
On Fri, Sep 4, 2015 at 2:51 PM, Upayavira <u...@odoko.co.uk> wrote: > I don't have a code snippet - I just found it in the solrj source code. > > As to using JSON, I'm not sure of the structure of the JSON you are > getting back, but you might find adding json.nl=map, which changes the > way it returns named lists, which may be easier to parse. > > Upayavira > > On Fri, Sep 4, 2015, at 10:14 AM, Ritesh Sinha wrote: > > This is the code which i have written to get the stemmed word. > > > > public class URLConnectionReader { > > public static void main(String[] args) throws Exception { > > URL solr = new URL( > > "http://localhost:8983/solr/ > > > "+args[0]+"/analysis/field?wt=json&analysis.showmatch=true&analysis.query="+args[1]+"&analysis.fieldtype="+args[2]+""); > > URLConnection sl = solr.openConnection(); > > BufferedReader in = new BufferedReader(new InputStreamReader( > > sl.getInputStream())); > > String inputLine; > > StringBuilder sb = new StringBuilder(); > > while ((inputLine = in.readLine()) != null) { > > sb.append(inputLine); > > } > > > > in.close(); > > > > JSONObject obj = new JSONObject(sb.toString()); > > JSONArray analysis = obj.getJSONObject("analysis") > > .getJSONObject("field_types").getJSONObject(args[2]) > > .getJSONArray("query"); > > > > JSONArray jsonarray = new JSONArray(analysis.toString()); > > ArrayList<String> stemmedWords = new ArrayList<String>(); > > for (int i = 0; i < jsonarray.length(); i++) { > > String objF = jsonarray.getString(i); > > stemmedWords.add(objF); > > } > > > > String lastStemmedGroup = stemmedWords.get(stemmedWords.size() - > > 1).toString(); > > > > JSONArray finalStemmer = new JSONArray(lastStemmedGroup); > > > > for (int i = 0; i < finalStemmer.length(); i++) { > > JSONObject jsonobject = finalStemmer.getJSONObject(i); > > String stemmedWord = jsonobject.getString("text"); > > System.out.println(stemmedWord); > > } > > > > } > > > > } > > > > > > Here, args[0] is core. > > args[1] is the word i'll be sending for stemming. > > args[2] is the Analyse Fieldname / FieldType. > > > > I am looking into FieldAnalysisRequest. > > Do you have some code snippet or something which can guide me ? > > > > Thanks > > > > On Fri, Sep 4, 2015 at 12:44 PM, Upayavira <u...@odoko.co.uk> wrote: > > > > > Yes, look at the one I mentioned further up in this thread, which is a > > > part of SolrJ: FieldAnalysisRequest > > > > > > That uses the same HTTP call in the backend, but formats the result in > a > > > Java friendly manner. > > > > > > Upayavira > > > > > > On Fri, Sep 4, 2015, at 05:52 AM, Ritesh Sinha wrote: > > > > Yeah, I got. Thanks. > > > > > > > > It returns a json which have the stemmed words.I just need to parse > it > > > > and > > > > get the value. > > > > > > > > But, isn't there any JAVA API available for it ? > > > > > > > > On Thu, Sep 3, 2015 at 7:58 PM, Upayavira <u...@odoko.co.uk> wrote: > > > > > > > > > yes, the URL should be something like: > > > > > > > > > > > > > > > > > > > http://localhost:8983/solr/images/analysis/field?wt=json&analysis.showmatch=true&analysis.fieldvalue= > > > > > <stuff-you-want-analysing>&analysis.fieldname=<somefield> > > > > > > > > > > Upayavira > > > > > > > > > > On Thu, Sep 3, 2015, at 03:23 PM, Jack Krupansky wrote: > > > > > > The # in the URL says to send the request to the admin UI, which > of > > > > > > course > > > > > > returns an HTML web page. Instead, send the analysis URL fragment > > > > > > directly > > > > > > to the analysis API (not UI) for the Solr core, without the #. > > > > > > > > > > > > -- Jack Krupansky > > > > > > > > > > > > On Thu, Sep 3, 2015 at 8:45 AM, Ritesh Sinha < > > > > > > kumarriteshranjansi...@gmail.com> wrote: > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > I observed the inspect element and wrote a code to give back > the > > > > > content. I > > > > > > > have included the url which was getting generated. > > > > > > > > > > > > > > public class URLConnectionReader { > > > > > > > public static void main(String[] args) throws Exception { > > > > > > > URL solr = new URL( > > > > > > > " > > > > > > > > > > > > > > > > > > > > > > > http://localhost:8983/solr/#/testcore/analysis?analysis.fieldvalue=holidays&analysis.fieldtype=inferlytics&verbose_output=1 > > > > > > > "); > > > > > > > URLConnection sl = solr.openConnection(); > > > > > > > BufferedReader in = new BufferedReader(new > > > InputStreamReader( > > > > > > > sl.getInputStream())); > > > > > > > String inputLine; > > > > > > > > > > > > > > while ((inputLine = in.readLine()) != null) > > > > > > > System.out.println(inputLine); > > > > > > > in.close(); > > > > > > > } > > > > > > > } > > > > > > > > > > > > > > > > > > > > > But it shows this in the consloe : > > > > > > > > > > > > > > <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" " > > > > > > > http://www.w3.org/TR/html4/strict.dtd"> > > > > > > > <html> > > > > > > > > > > > > > > <!-- > > > > > > > Licensed to the Apache Software Foundation (ASF) under one or > more > > > > > > > contributor license agreements. See the NOTICE file > distributed > > > with > > > > > > > this work for additional information regarding copyright > ownership. > > > > > > > The ASF licenses this file to You under the Apache License, > > > Version 2.0 > > > > > > > (the "License"); you may not use this file except in compliance > > > with > > > > > > > the License. You may obtain a copy of the License at > > > > > > > > > > > > > > http://www.apache.org/licenses/LICENSE-2.0 > > > > > > > > > > > > > > Unless required by applicable law or agreed to in writing, > software > > > > > > > distributed under the License is distributed on an "AS IS" > BASIS, > > > > > > > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > > > > > implied. > > > > > > > See the License for the specific language governing > permissions and > > > > > > > limitations under the License. > > > > > > > --> > > > > > > > > > > > > > > <head> > > > > > > > > > > > > > > <title>Solr Admin</title> > > > > > > > > > > > > > > <link rel="icon" type="image/x-icon" > > > href="img/favicon.ico?_=5.3.0"> > > > > > > > <link rel="shortcut icon" type="image/x-icon" > > > > > > > href="img/favicon.ico?_=5.3.0"> > > > > > > > > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/common.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/analysis.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/cloud.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/cores.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/dashboard.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/dataimport.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/files.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/index.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/java-properties.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/logging.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/menu.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/plugins.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/documents.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/query.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/replication.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/schema-browser.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/threads.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > > > > > href="css/styles/segments.css?_=5.3.0"> > > > > > > > <link rel="stylesheet" type="text/css" > > > href="css/chosen.css?_=5.3.0"> > > > > > > > > > > > > > > <meta http-equiv="x-ua-compatible" content="IE=9"> > > > > > > > > > > > > > > <script type="text/javascript"> > > > > > > > > > > > > > > var app_config = {}; > > > > > > > > > > > > > > app_config.solr_path = '\/solr'; > > > > > > > app_config.core_admin_path = '\/admin\/cores'; > > > > > > > > > > > > > > </script> > > > > > > > > > > > > > > </head> > > > > > > > <body> > > > > > > > > > > > > > > <div id="wrapper"> > > > > > > > > > > > > > > <div id="header"> > > > > > > > > > > > > > > <a href="./" id="solr"><span>Apache SOLR</span></a> > > > > > > > > > > > > > > <p id="environment"> </p> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > <div id="main" class="clearfix"> > > > > > > > > > > > > > > <div id="init-failures"> > > > > > > > > > > > > > > <h2>SolrCore Initialization Failures</h2> > > > > > > > <ul></ul> > > > > > > > <p>Please check your logs for more information</p> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > <div id="content-wrapper"> > > > > > > > <div id="content"> > > > > > > > > > > > > > > > > > > > > > > > > > > > > </div> > > > > > > > </div> > > > > > > > > > > > > > > <div id="menu-wrapper"> > > > > > > > <div> > > > > > > > > > > > > > > <ul id="menu"> > > > > > > > > > > > > > > <li id="index" class="global"><p><a > > > > > > > href="#/">Dashboard</a></p></li> > > > > > > > > > > > > > > <li id="logging" class="global"><p><a > > > > > > > href="#/~logging">Logging</a></p> > > > > > > > <ul> > > > > > > > <li class="level"><a > > > > > href="#/~logging/level">Level</a></li> > > > > > > > </ul> > > > > > > > </li> > > > > > > > > > > > > > > <li id="cloud" class="global optional"><p><a > > > > > > > href="#/~cloud">Cloud</a></p> > > > > > > > <ul> > > > > > > > <li class="tree"><a > > > > > href="#/~cloud?view=tree">Tree</a></li> > > > > > > > <li class="graph"><a > href="#/~cloud">Graph</a></li> > > > > > > > <li class="rgraph"><a > > > href="#/~cloud?view=rgraph">Graph > > > > > > > (Radial)</a></li> > > > > > > > <li class="dump"><a > href="#/~cloud">Dump</a></li> > > > > > > > </ul> > > > > > > > </li> > > > > > > > > > > > > > > <li id="cores" class="global"><p><a > > > href="#/~cores">Core > > > > > > > Admin</a></p></li> > > > > > > > > > > > > > > <li id="java-properties" class="global"><p><a > > > > > > > href="#/~java-properties">Java Properties</a></li> > > > > > > > > > > > > > > <li id="threads" class="global"><p><a > > > > > href="#/~threads">Thread > > > > > > > Dump</a></p></li> > > > > > > > > > > > > > > </ul> > > > > > > > > > > > > > > <div id="core-selector"> > > > > > > > <div id="has-cores"> > > > > > > > <select data-placeholder="Core > Selector"></select> > > > > > > > </div> > > > > > > > <p id="has-no-cores"><a href="#/~cores"> > > > > > > > No cores available > > > > > > > <span>Go and create one</span> > > > > > > > </a></p> > > > > > > > </div> > > > > > > > <div id="core-menu"> > > > > > > > <ul></ul> > > > > > > > </div> > > > > > > > > > > > > > > </div> > > > > > > > </div> > > > > > > > > > > > > > > <div id="meta"> > > > > > > > > > > > > > > <ul> > > > > > > > > > > > > > > <li class="documentation"><a href=" > > > > > > > http://lucene.apache.org/solr/ > > > > > > > "><span>Documentation</span></a></li> > > > > > > > <li class="issues"><a href=" > > > > > > > http://issues.apache.org/jira/browse/SOLR"><span>Issue > > > > > > > Tracker</span></a></li> > > > > > > > <li class="irc"><a > > > > > > > href="https://wiki.apache.org/solr/IRCChannels"><span>IRC > > > > > > > Channel</span></a></li> > > > > > > > <li class="mailinglist"><a href=" > > > > > > > http://lucene.apache.org/solr/resources.html#community > > > > > "><span>Community > > > > > > > forum</span></a></li> > > > > > > > <li class="wiki-query-syntax"><a href=" > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/solr/Query+Syntax+and+Parsing > > > > > > > "><span>Solr > > > > > > > Query Syntax</span></a></li> > > > > > > > > > > > > > > </ul> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > <div id="connection_status"> > > > > > > > > > > > > > > <span>Connection lost …</span> > > > > > > > > > > > > > > </div> > > > > > > > > > > > > > > <script type="text/javascript"> var require = { urlArgs: > > > '_=5.3.0' }; > > > > > > > </script> > > > > > > > <script src="js/require.js?_=5.3.0" > data-main="js/main"></script> > > > > > > > > > > > > > > </body> > > > > > > > </html> > > > > > > > > > > > > > > > > > > > > > On Thu, Sep 3, 2015 at 4:12 PM, Upayavira <u...@odoko.co.uk> > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Sep 3, 2015, at 11:19 AM, Ritesh Sinha wrote: > > > > > > > > > I am learning solr and want to use solr for stemming > > > words.I'll be > > > > > > > > > passing > > > > > > > > > the word to the solr and it should send the stemmed word > back.I > > > > > know > > > > > > > how > > > > > > > > > to > > > > > > > > > configure solr core for different stemming patterns and > also i > > > am > > > > > able > > > > > > > to > > > > > > > > > view their stemmed words in the analyzer (solr admin ui) > but i > > > am > > > > > not > > > > > > > > > sure > > > > > > > > > how to achieve this using java code.I am able to index and > > > query > > > > > using > > > > > > > > > java > > > > > > > > > api. > > > > > > > > > > > > > > > > Use your browser's "developer tools" to see what is going on > > > behind > > > > > the > > > > > > > > scenes when you use the admin UI analysis tab. > > > > > > > > > > > > > > > > It is just an HTTP call that you can replicate from Java. I > see > > > that > > > > > > > > SolrJ has a FieldAnalysisRequest that I suspect does the very > > > same > > > > > > > > thing. > > > > > > > > > > > > > > > > Hope that helps. > > > > > > > > > > > > > > > > Upayavira > > > > > > > > > > > > > > > > > > > > > > > >