rjack-solr 3.6.2.0-java → 4.0.0.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/History.rdoc +5 -0
  2. data/Manifest.txt +268 -33
  3. data/NOTICE.txt +1 -1
  4. data/README.rdoc +6 -6
  5. data/assembly.xml +2 -2
  6. data/bin/rjack-solr-fg +1 -1
  7. data/init/rjack-solr +2 -2
  8. data/lib/rjack-solr.rb +7 -2
  9. data/lib/rjack-solr/base.rb +2 -2
  10. data/lib/rjack-solr/commons-cli-1.2.jar +0 -0
  11. data/lib/rjack-solr/config.rb +1 -1
  12. data/lib/rjack-solr/server.rb +1 -1
  13. data/lib/rjack-solr/solr-core-4.0.0.jar +0 -0
  14. data/lib/rjack-solr/solr-solrj-4.0.0.jar +0 -0
  15. data/pom.xml +19 -6
  16. data/test/test_solr.rb +7 -5
  17. data/webapp/META-INF/LICENSE.txt +0 -940
  18. data/webapp/META-INF/MANIFEST.MF +5 -5
  19. data/webapp/META-INF/NOTICE.txt +160 -93
  20. data/webapp/WEB-INF/web.xml +57 -43
  21. data/webapp/admin.html +140 -0
  22. data/webapp/css/chosen.css +392 -0
  23. data/webapp/css/styles/analysis.css +293 -0
  24. data/webapp/css/styles/cloud.css +331 -0
  25. data/webapp/css/styles/common.css +593 -0
  26. data/webapp/css/styles/cores.css +203 -0
  27. data/webapp/css/styles/dashboard.css +127 -0
  28. data/webapp/css/styles/dataimport.css +222 -0
  29. data/webapp/css/styles/index.css +195 -0
  30. data/webapp/css/styles/java-properties.css +33 -0
  31. data/webapp/css/styles/logging.css +323 -0
  32. data/webapp/css/styles/menu.css +272 -0
  33. data/webapp/css/styles/plugins.css +175 -0
  34. data/webapp/css/styles/query.css +137 -0
  35. data/webapp/css/styles/replication.css +494 -0
  36. data/webapp/css/styles/schema-browser.css +476 -0
  37. data/webapp/css/styles/threads.css +153 -0
  38. data/webapp/img/ZeroClipboard.swf +0 -0
  39. data/webapp/img/chosen-sprite.png +0 -0
  40. data/webapp/img/div.gif +0 -0
  41. data/webapp/{admin → img}/favicon.ico +0 -0
  42. data/webapp/img/filetypes/7z.png +0 -0
  43. data/webapp/img/filetypes/README +27 -0
  44. data/webapp/img/filetypes/ai.png +0 -0
  45. data/webapp/img/filetypes/aiff.png +0 -0
  46. data/webapp/img/filetypes/asc.png +0 -0
  47. data/webapp/img/filetypes/audio.png +0 -0
  48. data/webapp/img/filetypes/bin.png +0 -0
  49. data/webapp/img/filetypes/bz2.png +0 -0
  50. data/webapp/img/filetypes/c.png +0 -0
  51. data/webapp/img/filetypes/cfc.png +0 -0
  52. data/webapp/img/filetypes/cfm.png +0 -0
  53. data/webapp/img/filetypes/chm.png +0 -0
  54. data/webapp/img/filetypes/class.png +0 -0
  55. data/webapp/img/filetypes/conf.png +0 -0
  56. data/webapp/img/filetypes/cpp.png +0 -0
  57. data/webapp/img/filetypes/cs.png +0 -0
  58. data/webapp/img/filetypes/css.png +0 -0
  59. data/webapp/img/filetypes/csv.png +0 -0
  60. data/webapp/img/filetypes/deb.png +0 -0
  61. data/webapp/img/filetypes/divx.png +0 -0
  62. data/webapp/img/filetypes/doc.png +0 -0
  63. data/webapp/img/filetypes/dot.png +0 -0
  64. data/webapp/img/filetypes/eml.png +0 -0
  65. data/webapp/img/filetypes/enc.png +0 -0
  66. data/webapp/img/filetypes/file.png +0 -0
  67. data/webapp/img/filetypes/gif.png +0 -0
  68. data/webapp/img/filetypes/gz.png +0 -0
  69. data/webapp/img/filetypes/hlp.png +0 -0
  70. data/webapp/img/filetypes/htm.png +0 -0
  71. data/webapp/img/filetypes/html.png +0 -0
  72. data/webapp/img/filetypes/image.png +0 -0
  73. data/webapp/img/filetypes/iso.png +0 -0
  74. data/webapp/img/filetypes/jar.png +0 -0
  75. data/webapp/img/filetypes/java.png +0 -0
  76. data/webapp/img/filetypes/jpeg.png +0 -0
  77. data/webapp/img/filetypes/jpg.png +0 -0
  78. data/webapp/img/filetypes/js.png +0 -0
  79. data/webapp/img/filetypes/lua.png +0 -0
  80. data/webapp/img/filetypes/m.png +0 -0
  81. data/webapp/img/filetypes/mm.png +0 -0
  82. data/webapp/img/filetypes/mov.png +0 -0
  83. data/webapp/img/filetypes/mp3.png +0 -0
  84. data/webapp/img/filetypes/mpg.png +0 -0
  85. data/webapp/img/filetypes/odc.png +0 -0
  86. data/webapp/img/filetypes/odf.png +0 -0
  87. data/webapp/img/filetypes/odg.png +0 -0
  88. data/webapp/img/filetypes/odi.png +0 -0
  89. data/webapp/img/filetypes/odp.png +0 -0
  90. data/webapp/img/filetypes/ods.png +0 -0
  91. data/webapp/img/filetypes/odt.png +0 -0
  92. data/webapp/img/filetypes/ogg.png +0 -0
  93. data/webapp/img/filetypes/pdf.png +0 -0
  94. data/webapp/img/filetypes/pgp.png +0 -0
  95. data/webapp/img/filetypes/php.png +0 -0
  96. data/webapp/img/filetypes/pl.png +0 -0
  97. data/webapp/img/filetypes/png.png +0 -0
  98. data/webapp/img/filetypes/ppt.png +0 -0
  99. data/webapp/img/filetypes/ps.png +0 -0
  100. data/webapp/img/filetypes/py.png +0 -0
  101. data/webapp/img/filetypes/ram.png +0 -0
  102. data/webapp/img/filetypes/rar.png +0 -0
  103. data/webapp/img/filetypes/rb.png +0 -0
  104. data/webapp/img/filetypes/rm.png +0 -0
  105. data/webapp/img/filetypes/rpm.png +0 -0
  106. data/webapp/img/filetypes/rtf.png +0 -0
  107. data/webapp/img/filetypes/sig.png +0 -0
  108. data/webapp/img/filetypes/sql.png +0 -0
  109. data/webapp/img/filetypes/swf.png +0 -0
  110. data/webapp/img/filetypes/sxc.png +0 -0
  111. data/webapp/img/filetypes/sxd.png +0 -0
  112. data/webapp/img/filetypes/sxi.png +0 -0
  113. data/webapp/img/filetypes/sxw.png +0 -0
  114. data/webapp/img/filetypes/tar.png +0 -0
  115. data/webapp/img/filetypes/tex.png +0 -0
  116. data/webapp/img/filetypes/tgz.png +0 -0
  117. data/webapp/img/filetypes/txt.png +0 -0
  118. data/webapp/img/filetypes/vcf.png +0 -0
  119. data/webapp/img/filetypes/video.png +0 -0
  120. data/webapp/img/filetypes/vsd.png +0 -0
  121. data/webapp/img/filetypes/wav.png +0 -0
  122. data/webapp/img/filetypes/wma.png +0 -0
  123. data/webapp/img/filetypes/wmv.png +0 -0
  124. data/webapp/img/filetypes/xls.png +0 -0
  125. data/webapp/img/filetypes/xml.png +0 -0
  126. data/webapp/img/filetypes/xpi.png +0 -0
  127. data/webapp/img/filetypes/xvid.png +0 -0
  128. data/webapp/img/filetypes/zip.png +0 -0
  129. data/webapp/img/ico/arrow-000-small.png +0 -0
  130. data/webapp/img/ico/arrow-circle.png +0 -0
  131. data/webapp/img/ico/arrow-switch.png +0 -0
  132. data/webapp/img/ico/asterisk.png +0 -0
  133. data/webapp/img/ico/battery.png +0 -0
  134. data/webapp/img/ico/block-small.png +0 -0
  135. data/webapp/img/ico/block.png +0 -0
  136. data/webapp/img/ico/book-open-text.png +0 -0
  137. data/webapp/img/ico/box.png +0 -0
  138. data/webapp/img/ico/bug.png +0 -0
  139. data/webapp/img/ico/chart.png +0 -0
  140. data/webapp/img/ico/chevron-small-expand.png +0 -0
  141. data/webapp/img/ico/chevron-small.png +0 -0
  142. data/webapp/img/ico/clipboard-list.png +0 -0
  143. data/webapp/img/ico/clipboard-paste-document-text.png +0 -0
  144. data/webapp/img/ico/clipboard-paste.png +0 -0
  145. data/webapp/img/ico/clock-select-remain.png +0 -0
  146. data/webapp/img/ico/clock-select.png +0 -0
  147. data/webapp/img/ico/construction.png +0 -0
  148. data/webapp/img/ico/cross-0.png +0 -0
  149. data/webapp/img/ico/cross-1.png +0 -0
  150. data/webapp/img/ico/cross.png +0 -0
  151. data/webapp/img/ico/dashboard.png +0 -0
  152. data/webapp/img/ico/database.png +0 -0
  153. data/webapp/img/ico/databases.png +0 -0
  154. data/webapp/img/ico/disk-black.png +0 -0
  155. data/webapp/img/ico/document-convert.png +0 -0
  156. data/webapp/img/ico/document-import.png +0 -0
  157. data/webapp/img/ico/document-list.png +0 -0
  158. data/webapp/img/ico/document-text.png +0 -0
  159. data/webapp/img/ico/download-cloud.png +0 -0
  160. data/webapp/img/ico/exclamation-button.png +0 -0
  161. data/webapp/img/ico/eye.png +0 -0
  162. data/webapp/img/ico/folder-export.png +0 -0
  163. data/webapp/img/ico/folder-tree.png +0 -0
  164. data/webapp/img/ico/folder.png +0 -0
  165. data/webapp/img/ico/funnel-small.png +0 -0
  166. data/webapp/img/ico/funnel.png +0 -0
  167. data/webapp/img/ico/gear.png +0 -0
  168. data/webapp/img/ico/globe-network.png +0 -0
  169. data/webapp/img/ico/globe.png +0 -0
  170. data/webapp/img/ico/hammer-screwdriver.png +0 -0
  171. data/webapp/img/ico/hand.png +0 -0
  172. data/webapp/img/ico/highlighter-text.png +0 -0
  173. data/webapp/img/ico/hourglass--exclamation.png +0 -0
  174. data/webapp/img/ico/hourglass.png +0 -0
  175. data/webapp/img/ico/inbox-document-text.png +0 -0
  176. data/webapp/img/ico/information-button.png +0 -0
  177. data/webapp/img/ico/information-small.png +0 -0
  178. data/webapp/img/ico/information-white.png +0 -0
  179. data/webapp/img/ico/information.png +0 -0
  180. data/webapp/img/ico/jar.png +0 -0
  181. data/webapp/img/ico/magnifier.png +0 -0
  182. data/webapp/img/ico/mail.png +0 -0
  183. data/webapp/img/ico/memory.png +0 -0
  184. data/webapp/img/ico/molecule.png +0 -0
  185. data/webapp/img/ico/network-cloud.png +0 -0
  186. data/webapp/img/ico/network-status-away.png +0 -0
  187. data/webapp/img/ico/network-status-busy.png +0 -0
  188. data/webapp/img/ico/network-status-offline.png +0 -0
  189. data/webapp/img/ico/network-status.png +0 -0
  190. data/webapp/img/ico/network.png +0 -0
  191. data/webapp/img/ico/node-design.png +0 -0
  192. data/webapp/img/ico/node-master.png +0 -0
  193. data/webapp/img/ico/node-select.png +0 -0
  194. data/webapp/img/ico/node-slave.png +0 -0
  195. data/webapp/img/ico/node.png +0 -0
  196. data/webapp/img/ico/pencil-small.png +0 -0
  197. data/webapp/img/ico/plus-button.png +0 -0
  198. data/webapp/img/ico/processor.png +0 -0
  199. data/webapp/img/ico/prohibition.png +0 -0
  200. data/webapp/img/ico/property.png +0 -0
  201. data/webapp/img/ico/question-small-white.png +0 -0
  202. data/webapp/img/ico/question-white.png +0 -0
  203. data/webapp/img/ico/question.png +0 -0
  204. data/webapp/img/ico/receipt-invoice.png +0 -0
  205. data/webapp/img/ico/receipt.png +0 -0
  206. data/webapp/img/ico/script-code.png +0 -0
  207. data/webapp/img/ico/server-cast.png +0 -0
  208. data/webapp/img/ico/server.png +0 -0
  209. data/webapp/img/ico/sitemap.png +0 -0
  210. data/webapp/img/ico/slash.png +0 -0
  211. data/webapp/img/ico/status-away.png +0 -0
  212. data/webapp/img/ico/status-busy.png +0 -0
  213. data/webapp/img/ico/status-offline.png +0 -0
  214. data/webapp/img/ico/status.png +0 -0
  215. data/webapp/img/ico/system-monitor--exclamation.png +0 -0
  216. data/webapp/img/ico/system-monitor.png +0 -0
  217. data/webapp/img/ico/table.png +0 -0
  218. data/webapp/img/ico/terminal.png +0 -0
  219. data/webapp/img/ico/tick-circle.png +0 -0
  220. data/webapp/img/ico/tick-red.png +0 -0
  221. data/webapp/img/ico/tick.png +0 -0
  222. data/webapp/img/ico/toggle-small-expand.png +0 -0
  223. data/webapp/img/ico/toggle-small.png +0 -0
  224. data/webapp/img/ico/toolbox.png +0 -0
  225. data/webapp/img/ico/ui-accordion.png +0 -0
  226. data/webapp/img/ico/ui-address-bar.png +0 -0
  227. data/webapp/img/ico/ui-check-box-uncheck.png +0 -0
  228. data/webapp/img/ico/ui-check-box.png +0 -0
  229. data/webapp/img/ico/ui-radio-button-uncheck.png +0 -0
  230. data/webapp/img/ico/ui-radio-button.png +0 -0
  231. data/webapp/img/ico/ui-text-field-select.png +0 -0
  232. data/webapp/img/ico/users.png +0 -0
  233. data/webapp/img/ico/wooden-box.png +0 -0
  234. data/webapp/img/ico/zone.png +0 -0
  235. data/webapp/img/loader-light.gif +0 -0
  236. data/webapp/img/loader.gif +0 -0
  237. data/webapp/img/lucene-ico.png +0 -0
  238. data/webapp/img/solr-ico.png +0 -0
  239. data/webapp/{admin/solr_small.png → img/solr.png} +0 -0
  240. data/webapp/img/tree.png +0 -0
  241. data/webapp/js/lib/ZeroClipboard.js +317 -0
  242. data/webapp/js/lib/chosen.js +953 -0
  243. data/webapp/{admin/get-properties.jsp → js/lib/console.js} +13 -10
  244. data/webapp/js/lib/d3.js +9342 -0
  245. data/webapp/js/lib/highlight.js +1 -0
  246. data/webapp/{admin/jquery-1.4.3.min.js → js/lib/jquery-1.7.2.min.js} +0 -0
  247. data/webapp/js/lib/jquery.blockUI.js +499 -0
  248. data/webapp/js/lib/jquery.cookie.js +47 -0
  249. data/webapp/js/lib/jquery.form.js +782 -0
  250. data/webapp/js/lib/jquery.jstree.js +3510 -0
  251. data/webapp/js/lib/jquery.sammy.js +1856 -0
  252. data/webapp/js/lib/jquery.sparkline.js +1271 -0
  253. data/webapp/js/lib/jquery.timeago.js +165 -0
  254. data/webapp/js/lib/linker.js +48 -0
  255. data/webapp/js/lib/order.js +189 -0
  256. data/webapp/js/main.js +57 -0
  257. data/webapp/js/require.js +11319 -0
  258. data/webapp/js/scripts/analysis.js +549 -0
  259. data/webapp/js/scripts/app.js +368 -0
  260. data/webapp/js/scripts/cloud.js +719 -0
  261. data/webapp/js/scripts/cores.js +540 -0
  262. data/webapp/js/scripts/dashboard.js +540 -0
  263. data/webapp/js/scripts/dataimport.js +567 -0
  264. data/webapp/js/scripts/file.js +56 -0
  265. data/webapp/js/scripts/index.js +344 -0
  266. data/webapp/js/scripts/java-properties.js +107 -0
  267. data/webapp/js/scripts/logging.js +519 -0
  268. data/webapp/js/scripts/ping.js +72 -0
  269. data/webapp/js/scripts/plugins.js +426 -0
  270. data/webapp/js/scripts/query.js +170 -0
  271. data/webapp/js/scripts/replication.js +557 -0
  272. data/webapp/js/scripts/schema-browser.js +1206 -0
  273. data/webapp/js/scripts/threads.js +159 -0
  274. data/webapp/tpl/analysis.html +83 -0
  275. data/webapp/tpl/cloud.html +54 -0
  276. data/webapp/tpl/cores.html +215 -0
  277. data/webapp/tpl/dashboard.html +164 -0
  278. data/webapp/tpl/dataimport.html +123 -0
  279. data/webapp/tpl/index.html +250 -0
  280. data/webapp/tpl/logging.html +23 -0
  281. data/webapp/tpl/plugins.html +39 -0
  282. data/webapp/tpl/query.html +318 -0
  283. data/webapp/tpl/replication.html +207 -0
  284. data/webapp/tpl/schema-browser.html +178 -0
  285. data/webapp/tpl/threads.html +56 -0
  286. metadata +307 -40
  287. data/lib/rjack-solr/solr-core-3.6.2.jar +0 -0
  288. data/lib/rjack-solr/solr-solrj-3.6.2.jar +0 -0
  289. data/webapp/admin/_info.jsp +0 -120
  290. data/webapp/admin/action.jsp +0 -94
  291. data/webapp/admin/analysis.jsp +0 -496
  292. data/webapp/admin/analysis.xsl +0 -179
  293. data/webapp/admin/dataimport.jsp +0 -53
  294. data/webapp/admin/debug.jsp +0 -103
  295. data/webapp/admin/distributiondump.jsp +0 -160
  296. data/webapp/admin/form.jsp +0 -152
  297. data/webapp/admin/get-file.jsp +0 -72
  298. data/webapp/admin/header.jsp +0 -44
  299. data/webapp/admin/index.jsp +0 -162
  300. data/webapp/admin/meta.xsl +0 -34
  301. data/webapp/admin/ping.jsp +0 -52
  302. data/webapp/admin/ping.xsl +0 -71
  303. data/webapp/admin/raw-schema.jsp +0 -38
  304. data/webapp/admin/registry.jsp +0 -107
  305. data/webapp/admin/registry.xsl +0 -321
  306. data/webapp/admin/replication/header.jsp +0 -89
  307. data/webapp/admin/replication/index.jsp +0 -378
  308. data/webapp/admin/schema.jsp +0 -690
  309. data/webapp/admin/solr-admin.css +0 -215
  310. data/webapp/admin/stats.jsp +0 -92
  311. data/webapp/admin/stats.xsl +0 -220
  312. data/webapp/admin/tabular.xsl +0 -141
  313. data/webapp/admin/threaddump.jsp +0 -110
  314. data/webapp/admin/threaddump.xsl +0 -103
  315. data/webapp/index.jsp +0 -49
Binary file
Binary file
@@ -1,120 +0,0 @@
1
- <%--
2
- Licensed to the Apache Software Foundation (ASF) under one or more
3
- contributor license agreements. See the NOTICE file distributed with
4
- this work for additional information regarding copyright ownership.
5
- The ASF licenses this file to You under the Apache License, Version 2.0
6
- (the "License"); you may not use this file except in compliance with
7
- the License. You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
16
- --%>
17
- <%@ page import="org.apache.solr.core.SolrConfig,
18
- org.apache.solr.core.SolrCore,
19
- org.apache.solr.schema.IndexSchema,
20
- java.io.File"%>
21
- <%@ page import="java.net.InetAddress"%>
22
- <%@ page import="java.io.StringWriter"%>
23
- <%@ page import="org.apache.solr.core.Config"%>
24
- <%@ page import="org.apache.solr.common.util.XML"%>
25
- <%@ page import="org.apache.solr.common.SolrException"%>
26
- <%@ page import="org.apache.lucene.LucenePackage"%>
27
- <%@ page import="java.net.UnknownHostException" %>
28
-
29
- <%!
30
- // only try to figure out the hostname once in a static block so
31
- // we don't have a potentially slow DNS lookup on every admin request
32
- static InetAddress addr = null;
33
- static String hostname = "unknown";
34
- static {
35
- try {
36
- addr = InetAddress.getLocalHost();
37
- hostname = addr.getCanonicalHostName();
38
- } catch (UnknownHostException e) {
39
- //default to unknown
40
- }
41
- }
42
- %>
43
-
44
- <%
45
- //
46
- SolrCore core = (SolrCore) request.getAttribute("org.apache.solr.SolrCore");
47
- if (core == null) {
48
- response.sendError( 404, "missing core name in path" );
49
- return;
50
- }
51
-
52
- SolrConfig solrConfig = core.getSolrConfig();
53
- int port = request.getServerPort();
54
- IndexSchema schema = core.getSchema();
55
-
56
- // enabled/disabled is purely from the point of a load-balancer
57
- // and has no effect on local server function. If there is no healthcheck
58
- // configured, don't put any status on the admin pages.
59
- String enabledStatus = null;
60
- String enabledFile = solrConfig.get("admin/healthcheck/text()",null);
61
- boolean isEnabled = false;
62
- if (enabledFile!=null) {
63
- isEnabled = new File(enabledFile).exists();
64
- }
65
-
66
- String collectionName = schema!=null ? schema.getName():"unknown";
67
-
68
- String defaultSearch = "";
69
- {
70
- StringWriter tmp = new StringWriter();
71
- XML.escapeCharData
72
- (solrConfig.get("admin/defaultQuery/text()", ""), tmp);
73
- defaultSearch = tmp.toString();
74
- }
75
-
76
- String solrImplVersion = "";
77
- String solrSpecVersion = "";
78
- String luceneImplVersion = "";
79
- String luceneSpecVersion = "";
80
-
81
- {
82
- Package p;
83
- StringWriter tmp;
84
-
85
- p = SolrCore.class.getPackage();
86
-
87
- tmp = new StringWriter();
88
- solrImplVersion = p.getImplementationVersion();
89
- if (null != solrImplVersion) {
90
- XML.escapeCharData(solrImplVersion, tmp);
91
- solrImplVersion = tmp.toString();
92
- }
93
- tmp = new StringWriter();
94
- solrSpecVersion = p.getSpecificationVersion() ;
95
- if (null != solrSpecVersion) {
96
- XML.escapeCharData(solrSpecVersion, tmp);
97
- solrSpecVersion = tmp.toString();
98
- }
99
-
100
- p = LucenePackage.class.getPackage();
101
-
102
- tmp = new StringWriter();
103
- luceneImplVersion = p.getImplementationVersion();
104
- if (null != luceneImplVersion) {
105
- XML.escapeCharData(luceneImplVersion, tmp);
106
- luceneImplVersion = tmp.toString();
107
- }
108
- tmp = new StringWriter();
109
- luceneSpecVersion = p.getSpecificationVersion() ;
110
- if (null != luceneSpecVersion) {
111
- XML.escapeCharData(luceneSpecVersion, tmp);
112
- luceneSpecVersion = tmp.toString();
113
- }
114
- }
115
-
116
- String cwd=System.getProperty("user.dir");
117
- String solrHome= solrConfig.getInstanceDir();
118
-
119
- boolean cachingEnabled = !solrConfig.getHttpCachingConfig().isNever304();
120
- %>
@@ -1,94 +0,0 @@
1
- <%@ page contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
2
- <%--
3
- Licensed to the Apache Software Foundation (ASF) under one or more
4
- contributor license agreements. See the NOTICE file distributed with
5
- this work for additional information regarding copyright ownership.
6
- The ASF licenses this file to You under the Apache License, Version 2.0
7
- (the "License"); you may not use this file except in compliance with
8
- the License. You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- --%>
18
- <%@ page import="org.apache.solr.common.util.XML"%>
19
- <%@ page import="org.apache.solr.core.SolrCore,
20
- org.apache.solr.schema.IndexSchema,
21
- java.io.File,
22
- java.net.InetAddress,
23
- java.net.UnknownHostException"%>
24
- <%@ page import="java.util.Date"%>
25
- <%@include file="header.jsp" %>
26
- <%
27
-
28
- String action = request.getParameter("action");
29
- String enableActionStatus = "";
30
- boolean isValid = false;
31
-
32
- if (action != null) {
33
- // Validate fname
34
- if ("Enable".compareTo(action) == 0) isValid = true;
35
- if ("Disable".compareTo(action) == 0) isValid = true;
36
- }
37
- if (isValid) {
38
- if ("Enable".compareTo(action) == 0) {
39
- try {
40
- File enableFile = new File(enabledFile);
41
- if (enableFile.createNewFile()) {
42
- enableActionStatus += "Enable Succeeded (enable file ";
43
- enableActionStatus += enabledFile;
44
- enableActionStatus += " created)";
45
- } else {
46
- enableActionStatus += "Already Enabled";
47
- }
48
- } catch(Exception e) {
49
- enableActionStatus += "Enable Failed: " + e.toString();
50
- }
51
- }
52
- if ("Disable".compareTo(action) == 0) {
53
- try {
54
- File enableFile = new File(enabledFile);
55
- if (enableFile.delete()) {
56
- enableActionStatus = "Disable Succeeded (enable file ";
57
- enableActionStatus += enabledFile;
58
- enableActionStatus += " removed)";
59
- } else {
60
- enableActionStatus = "Already Disabled";
61
- }
62
- } catch(Exception e) {
63
- enableActionStatus += "Disable Failed: " + e.toString();
64
- }
65
- }
66
- } else {
67
- enableActionStatus = "Illegal Action";
68
- }
69
- // :TODO: might want to rework this so any logging change happens *after*
70
- SolrCore.log.info(enableActionStatus);
71
- %>
72
- <br clear="all">
73
- <table>
74
- <tr>
75
- <td>
76
- <H3>Action:</H3>
77
- </td>
78
- <td>
79
- <% XML.escapeCharData(action, out); %><br>
80
- </td>
81
- </tr>
82
- <tr>
83
- <td>
84
- <H4>Result:</H4>
85
- </td>
86
- <td>
87
- <% XML.escapeCharData(enableActionStatus, out); %><br>
88
- </td>
89
- </tr>
90
- </table>
91
- <br><br>
92
- <a href=".">Return to Admin Page</a>
93
- </body>
94
- </html>
@@ -1,496 +0,0 @@
1
- <%@ page contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
2
- <%--
3
- Licensed to the Apache Software Foundation (ASF) under one or more
4
- contributor license agreements. See the NOTICE file distributed with
5
- this work for additional information regarding copyright ownership.
6
- The ASF licenses this file to You under the Apache License, Version 2.0
7
- (the "License"); you may not use this file except in compliance with
8
- the License. You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- --%>
18
- <%@ page import="org.apache.lucene.analysis.Analyzer,
19
- org.apache.lucene.util.AttributeSource,
20
- org.apache.lucene.util.Attribute,
21
- org.apache.lucene.analysis.TokenStream,
22
- org.apache.lucene.index.Payload,
23
- org.apache.lucene.analysis.CharReader,
24
- org.apache.lucene.analysis.CharStream,
25
- org.apache.lucene.analysis.tokenattributes.*,
26
- org.apache.lucene.util.AttributeReflector,
27
- org.apache.solr.analysis.CharFilterFactory,
28
- org.apache.solr.analysis.TokenFilterFactory,
29
- org.apache.solr.analysis.TokenizerChain,
30
- org.apache.solr.analysis.TokenizerFactory,
31
- org.apache.solr.schema.FieldType,
32
- org.apache.solr.schema.SchemaField,
33
- org.apache.solr.common.util.XML,
34
- javax.servlet.jsp.JspWriter,java.io.IOException
35
- "%>
36
- <%@ page import="java.io.Reader"%>
37
- <%@ page import="java.io.StringReader"%>
38
- <%@ page import="java.util.*"%>
39
- <%@ page import="java.math.BigInteger" %>
40
-
41
- <%-- $Id: analysis.jsp 1095519 2011-04-20 21:30:47Z uschindler $ --%>
42
- <%-- $Source: /cvs/main/searching/org.apache.solrolarServer/resources/admin/analysis.jsp,v $ --%>
43
- <%-- $Name: $ --%>
44
-
45
- <%@include file="header.jsp" %>
46
-
47
- <%
48
- // is name a field name or a type name?
49
- String nt = request.getParameter("nt");
50
- if (nt==null || nt.length()==0) nt="name"; // assume field name
51
- nt = nt.toLowerCase(Locale.ENGLISH).trim();
52
- String name = request.getParameter("name");
53
- if (name==null || name.length()==0) name="";
54
- String val = request.getParameter("val");
55
- if (val==null || val.length()==0) val="";
56
- String qval = request.getParameter("qval");
57
- if (qval==null || qval.length()==0) qval="";
58
- String verboseS = request.getParameter("verbose");
59
- boolean verbose = verboseS!=null && verboseS.equalsIgnoreCase("on");
60
- String qverboseS = request.getParameter("qverbose");
61
- boolean qverbose = qverboseS!=null && qverboseS.equalsIgnoreCase("on");
62
- String highlightS = request.getParameter("highlight");
63
- boolean highlight = highlightS!=null && highlightS.equalsIgnoreCase("on");
64
- %>
65
-
66
- <br clear="all">
67
-
68
- <h2>Field Analysis</h2>
69
-
70
- <form method="POST" action="analysis.jsp" accept-charset="UTF-8">
71
- <table>
72
- <tr>
73
- <td>
74
- <strong>Field
75
- <select name="nt">
76
- <option <%= nt.equals("name") ? "selected=\"selected\"" : "" %> >name</option>
77
- <option <%= nt.equals("type") ? "selected=\"selected\"" : "" %>>type</option>
78
- </select></strong>
79
- </td>
80
- <td>
81
- <input class="std" name="name" type="text" value="<% XML.escapeCharData(name, out); %>">
82
- </td>
83
- </tr>
84
- <tr>
85
- <td>
86
- <strong>Field value (Index)</strong>
87
- <br/>
88
- verbose output
89
- <input name="verbose" type="checkbox"
90
- <%= verbose ? "checked=\"true\"" : "" %> >
91
- <br/>
92
- highlight matches
93
- <input name="highlight" type="checkbox"
94
- <%= highlight ? "checked=\"true\"" : "" %> >
95
- </td>
96
- <td>
97
- <textarea class="std" rows="8" cols="70" name="val"><% XML.escapeCharData(val,out); %></textarea>
98
- </td>
99
- </tr>
100
- <tr>
101
- <td>
102
- <strong>Field value (Query)</strong>
103
- <br/>
104
- verbose output
105
- <input name="qverbose" type="checkbox"
106
- <%= qverbose ? "checked=\"true\"" : "" %> >
107
- </td>
108
- <td>
109
- <textarea class="std" rows="1" cols="70" name="qval"><% XML.escapeCharData(qval,out); %></textarea>
110
- </td>
111
- </tr>
112
- <tr>
113
-
114
- <td>
115
- </td>
116
-
117
- <td>
118
- <input class="stdbutton" type="submit" value="analyze">
119
- </td>
120
-
121
- </tr>
122
- </table>
123
- </form>
124
-
125
-
126
- <%
127
- SchemaField field=null;
128
-
129
- if (name!="") {
130
- if (nt.equals("name")) {
131
- try {
132
- field = schema.getField(name);
133
- } catch (Exception e) {
134
- out.print("<strong>Unknown Field: ");
135
- XML.escapeCharData(name, out);
136
- out.println("</strong>");
137
- }
138
- } else {
139
- FieldType t = schema.getFieldTypes().get(name);
140
- if (null == t) {
141
- out.print("<strong>Unknown Field Type: ");
142
- XML.escapeCharData(name, out);
143
- out.println("</strong>");
144
- } else {
145
- field = new SchemaField("fakefieldoftype:"+name, t);
146
- }
147
- }
148
- }
149
-
150
- if (field!=null) {
151
- HashSet<String> matches = null;
152
- if (qval!="" && highlight) {
153
- Reader reader = new StringReader(qval);
154
- Analyzer analyzer = field.getType().getQueryAnalyzer();
155
- TokenStream tstream = analyzer.reusableTokenStream(field.getName(),reader);
156
- CharTermAttribute termAtt = tstream.addAttribute(CharTermAttribute.class);
157
- tstream.reset();
158
- matches = new HashSet<String>();
159
- while (tstream.incrementToken()) {
160
- matches.add(termAtt.toString());
161
- }
162
- }
163
-
164
- if (val!="") {
165
- out.println("<h3>Index Analyzer</h3>");
166
- doAnalyzer(out, field, val, false, verbose, matches);
167
- }
168
- if (qval!="") {
169
- out.println("<h3>Query Analyzer</h3>");
170
- doAnalyzer(out, field, qval, true, qverbose, null);
171
- }
172
- }
173
-
174
- %>
175
-
176
-
177
- </body>
178
- </html>
179
-
180
-
181
- <%!
182
- private static void doAnalyzer(JspWriter out, SchemaField field, String val, boolean queryAnalyser, boolean verbose, Set<String> match) throws Exception {
183
-
184
- FieldType ft = field.getType();
185
- Analyzer analyzer = queryAnalyser ?
186
- ft.getQueryAnalyzer() : ft.getAnalyzer();
187
- if (analyzer instanceof TokenizerChain) {
188
- TokenizerChain tchain = (TokenizerChain)analyzer;
189
- CharFilterFactory[] cfiltfacs = tchain.getCharFilterFactories();
190
- TokenizerFactory tfac = tchain.getTokenizerFactory();
191
- TokenFilterFactory[] filtfacs = tchain.getTokenFilterFactories();
192
-
193
- if( cfiltfacs != null ){
194
- String source = val;
195
- for(CharFilterFactory cfiltfac : cfiltfacs ){
196
- CharStream reader = CharReader.get(new StringReader(source));
197
- reader = cfiltfac.create(reader);
198
- if(verbose){
199
- writeHeader(out, cfiltfac.getClass(), cfiltfac.getArgs());
200
- source = writeCharStream(out, reader);
201
- }
202
- }
203
- }
204
-
205
- TokenStream tstream = tfac.create(tchain.charStream(new StringReader(val)));
206
- List<AttributeSource> tokens = getTokens(tstream);
207
- if (verbose) {
208
- writeHeader(out, tfac.getClass(), tfac.getArgs());
209
- }
210
-
211
- writeTokens(out, tokens, ft, verbose, match);
212
-
213
- for (TokenFilterFactory filtfac : filtfacs) {
214
- if (verbose) {
215
- writeHeader(out, filtfac.getClass(), filtfac.getArgs());
216
- }
217
-
218
- final Iterator<AttributeSource> iter = tokens.iterator();
219
- tstream = filtfac.create( new TokenStream(tstream.getAttributeFactory()) {
220
-
221
- public boolean incrementToken() throws IOException {
222
- if (iter.hasNext()) {
223
- clearAttributes();
224
- AttributeSource token = iter.next();
225
- Iterator<Class<? extends Attribute>> atts = token.getAttributeClassesIterator();
226
- while (atts.hasNext()) // make sure all att impls in the token exist here
227
- addAttribute(atts.next());
228
- token.copyTo(this);
229
- return true;
230
- } else {
231
- return false;
232
- }
233
- }
234
- }
235
- );
236
- tokens = getTokens(tstream);
237
-
238
- writeTokens(out, tokens, ft, verbose, match);
239
- }
240
-
241
- } else {
242
- TokenStream tstream = analyzer.reusableTokenStream(field.getName(),new StringReader(val));
243
- tstream.reset();
244
- List<AttributeSource> tokens = getTokens(tstream);
245
- if (verbose) {
246
- writeHeader(out, analyzer.getClass(), Collections.EMPTY_MAP);
247
- }
248
- writeTokens(out, tokens, ft, verbose, match);
249
- }
250
- }
251
-
252
-
253
- static List<AttributeSource> getTokens(TokenStream tstream) throws IOException {
254
- List<AttributeSource> tokens = new ArrayList<AttributeSource>();
255
- tstream.reset();
256
- while (tstream.incrementToken()) {
257
- tokens.add(tstream.cloneAttributes());
258
- }
259
- return tokens;
260
- }
261
-
262
- private static class ReflectItem {
263
- final Class<? extends Attribute> attClass;
264
- final String key;
265
- final Object value;
266
-
267
- ReflectItem(Class<? extends Attribute> attClass, String key, Object value) {
268
- this.attClass = attClass;
269
- this.key = key;
270
- this.value = value;
271
- }
272
- }
273
-
274
- private static class Tok {
275
- final String term;
276
- final int pos;
277
- final List<ReflectItem> reflected = new ArrayList<ReflectItem>();
278
-
279
- Tok(AttributeSource token, int pos) {
280
- this.term = token.addAttribute(CharTermAttribute.class).toString();
281
- this.pos = pos;
282
- token.reflectWith(new AttributeReflector() {
283
- public void reflect(Class<? extends Attribute> attClass, String key, Object value) {
284
- // leave out position and term
285
- if (CharTermAttribute.class.isAssignableFrom(attClass))
286
- return;
287
- if (PositionIncrementAttribute.class.isAssignableFrom(attClass))
288
- return;
289
- reflected.add(new ReflectItem(attClass, key, value));
290
- }
291
- });
292
- }
293
- }
294
-
295
- private static interface TokToStr {
296
- public String toStr(Tok o);
297
- }
298
-
299
- private static void printRow(JspWriter out, String header, String headerTitle, List<Tok>[] arrLst, TokToStr converter, boolean multival, boolean verbose, Set<String> match) throws IOException {
300
- // find the maximum number of terms for any position
301
- int maxSz=1;
302
- if (multival) {
303
- for (List lst : arrLst) {
304
- maxSz = Math.max(lst.size(), maxSz);
305
- }
306
- }
307
-
308
-
309
- for (int idx=0; idx<maxSz; idx++) {
310
- out.println("<tr>");
311
- if (idx==0 && verbose) {
312
- if (header != null) {
313
- out.print("<th NOWRAP rowspan=\""+maxSz+"\"");
314
- if (headerTitle != null) {
315
- out.print(" title=\"");
316
- XML.escapeCharData(headerTitle,out);
317
- out.print("\"");
318
- }
319
- out.print(">");
320
- XML.escapeCharData(header,out);
321
- out.println("</th>");
322
- }
323
- }
324
-
325
- for (int posIndex=0; posIndex<arrLst.length; posIndex++) {
326
- List<Tok> lst = arrLst[posIndex];
327
- if (lst.size() <= idx) continue;
328
- if (match!=null && match.contains(lst.get(idx).term)) {
329
- out.print("<td class=\"highlight\"");
330
- } else {
331
- out.print("<td class=\"debugdata\"");
332
- }
333
-
334
- // if the last value in the column, use up
335
- // the rest of the space via rowspan.
336
- if (lst.size() == idx+1 && lst.size() < maxSz) {
337
- out.print("rowspan=\""+(maxSz-lst.size()+1)+'"');
338
- }
339
-
340
- out.print('>');
341
-
342
- XML.escapeCharData(converter.toStr(lst.get(idx)), out);
343
- out.print("</td>");
344
- }
345
-
346
- out.println("</tr>");
347
- }
348
-
349
- }
350
-
351
- /* this method is totally broken, as no charset involved: new String(byte[]) is crap!
352
- static String isPayloadString( Payload p ) {
353
- String sp = new String(p.getData());
354
- for( int i=0; i < sp.length(); i++ ) {
355
- if( !Character.isDefined( sp.charAt(i) ) || Character.isISOControl( sp.charAt(i) ) )
356
- return "";
357
- }
358
- return "(" + sp + ")";
359
- }
360
- */
361
-
362
- static void writeHeader(JspWriter out, Class clazz, Map<String,String> args) throws IOException {
363
- out.print("<h4>");
364
- out.print(clazz.getName());
365
- XML.escapeCharData(" "+args,out);
366
- out.println("</h4>");
367
- }
368
-
369
-
370
-
371
- // readable, raw, pos, type, start/end
372
- static void writeTokens(JspWriter out, List<AttributeSource> tokens, final FieldType ft, boolean verbose, Set<String> match) throws IOException {
373
-
374
- // Use a map to tell what tokens are in what positions
375
- // because some tokenizers/filters may do funky stuff with
376
- // very large increments, or negative increments.
377
- HashMap<Integer,List<Tok>> map = new HashMap<Integer,List<Tok>>();
378
- boolean needRaw=false;
379
- int pos=0, reflectionCount = -1;
380
- for (AttributeSource t : tokens) {
381
- String text = t.addAttribute(CharTermAttribute.class).toString();
382
- if (!text.equals(ft.indexedToReadable(text))) {
383
- needRaw=true;
384
- }
385
-
386
- pos += t.addAttribute(PositionIncrementAttribute.class).getPositionIncrement();
387
- List lst = map.get(pos);
388
- if (lst==null) {
389
- lst = new ArrayList(1);
390
- map.put(pos,lst);
391
- }
392
- Tok tok = new Tok(t,pos);
393
- // sanity check
394
- if (reflectionCount < 0) {
395
- reflectionCount = tok.reflected.size();
396
- } else {
397
- if (reflectionCount != tok.reflected.size())
398
- throw new RuntimeException("Should not happen: Number of reflected entries differs for position=" + pos);
399
- }
400
- lst.add(tok);
401
- }
402
-
403
- List<Tok>[] arr = (List<Tok>[])map.values().toArray(new ArrayList[map.size()]);
404
-
405
- // Jetty 6.1.3 miscompiles a generics-enabled version..., without generics:
406
- Arrays.sort(arr, new Comparator() {
407
- public int compare(Object toks, Object toks1) {
408
- return ((List<Tok>)toks).get(0).pos - ((List<Tok>)toks1).get(0).pos;
409
- }
410
- });
411
-
412
- out.println("<table width=\"auto\" class=\"analysis\" border=\"1\">");
413
-
414
- if (verbose) {
415
- printRow(out, "position", "calculated from " + PositionIncrementAttribute.class.getName(), arr, new TokToStr() {
416
- public String toStr(Tok t) {
417
- return Integer.toString(t.pos);
418
- }
419
- },false,verbose,null);
420
- }
421
-
422
- printRow(out, "term text", CharTermAttribute.class.getName(), arr, new TokToStr() {
423
- public String toStr(Tok t) {
424
- return ft.indexedToReadable(t.term);
425
- }
426
- },true,verbose,match);
427
-
428
- if (verbose) {
429
- if (needRaw) {
430
- printRow(out, "raw text", CharTermAttribute.class.getName(), arr, new TokToStr() {
431
- public String toStr(Tok t) {
432
- // page is UTF-8, so anything goes.
433
- return t.term;
434
- }
435
- },true,verbose,match);
436
- }
437
-
438
- for (int att=0; att < reflectionCount; att++) {
439
- final ReflectItem item0 = arr[0].get(0).reflected.get(att);
440
- final int i = att;
441
- printRow(out, item0.key, item0.attClass.getName(), arr, new TokToStr() {
442
- public String toStr(Tok t) {
443
- final ReflectItem item = t.reflected.get(i);
444
- if (item0.attClass != item.attClass || !item0.key.equals(item.key))
445
- throw new RuntimeException("Should not happen: attribute types suddenly change at position=" + t.pos);
446
- if (item.value instanceof Payload) {
447
- Payload p = (Payload) item.value;
448
- if( null != p ) {
449
- BigInteger bi = new BigInteger( p.getData() );
450
- String ret = bi.toString( 16 );
451
- if (ret.length() % 2 != 0) {
452
- // Pad with 0
453
- ret = "0"+ret;
454
- }
455
- //TODO maybe fix: ret += isPayloadString(p);
456
- return ret;
457
- }
458
- return "";
459
- } else {
460
- return (item.value != null) ? item.value.toString() : "";
461
- }
462
- }
463
- },true,verbose,null);
464
- }
465
- }
466
-
467
- out.println("</table>");
468
- }
469
-
470
- static String writeCharStream(JspWriter out, CharStream input) throws IOException {
471
- out.println("<table width=\"auto\" class=\"analysis\" border=\"1\">");
472
- out.println("<tr>");
473
-
474
- out.print("<th NOWRAP>");
475
- XML.escapeCharData("text",out);
476
- out.println("</th>");
477
-
478
- final int BUFFER_SIZE = 1024;
479
- char[] buf = new char[BUFFER_SIZE];
480
- int len = 0;
481
- StringBuilder sb = new StringBuilder();
482
- do {
483
- len = input.read( buf, 0, BUFFER_SIZE );
484
- if( len > 0 )
485
- sb.append(buf, 0, len);
486
- } while( len == BUFFER_SIZE );
487
- out.print("<td class=\"debugdata\">");
488
- XML.escapeCharData(sb.toString(),out);
489
- out.println("</td>");
490
-
491
- out.println("</tr>");
492
- out.println("</table>");
493
- return sb.toString();
494
- }
495
-
496
- %>