Hannah,
Sorry for the slow response – I was out of the office for the American Thanksgiving holiday.
The problem is that the browse index tool uses Solr’s Java APIs, and these frequently change in backward-incompatible ways. A browse indexer built for Solr 4 will not work with Solr 7.
You should be able to grab the indexer jars from a more recent version of VuFind (5.0 or newer) or simply rebuild them from source (https://github.com/vufind-org/vufind-browse-handler) to resolve the problem.
Please let me know if you need further assistance!
- Demian
--
You received this message because you are subscribed to the Google Groups "solrmarc-tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
solrmarc-tec...@googlegroups.com.
To post to this group, send email to
solrma...@googlegroups.com.
Visit this group at
https://groups.google.com/group/solrmarc-tech.
For more options, visit
https://groups.google.com/d/optout.
When you say that the newer versions did not work, exactly what happened? Same error as before? Are you using the latest version of the index-alphabetic-browse.sh script in combination with browse-indexer.jar? Do you have all of the environment variables (JAVA_HOME/VUFIND_HOME/VUFIND_LOCAL_DIR) set to appropriate values? What Java version are you using?
Hannah,
Given that the error seems to be related to a missing class, and that VuFind’s bundled Solr has a different directory layout now than it did several versions back, I wonder if this boils down to a missing .jar file somewhere. It might be worth double-checking the long classpath definition used by the default VuFind script (CLASSPATH="browse-indexing.jar:${SOLR_HOME}/jars/*:${SOLR_HOME}/../vendor/contrib/analysis-extras/lib/*:${SOLR_HOME}/../vendor/server/solr-webapp/webapp/WEB-INF/lib/*") and making sure that all of the .jar files represented there are copied into your solr/jars directory.
Does that make any difference?
| //Must decrement RefCounted when finished! |
Hannah,
Is it possible the core does not exist? Have you indexed any authority records? If not, does accessing the core through the web-based Solr admin to initialize it change anything?
There used to be a problem in the browse code that would cause a failure if the authority core had not been initialized. That should be fixed in the latest code, but perhaps because you are not using this in the typical way, some variation of the problem is still occurring.
If that doesn’t help, please let me know and I’ll dig deeper!
Hannah,
That is correct. I am not aware of a known issue with the handler failing without the authority core, but that’s what the backtrace you shared seemed to suggest might be the problem.
Is there anything unusual about your Solr deployment, relative to a standard VuFind install, that might be a factor here? Are you using non-default core names or anything like that?
Is there a particular reason you are using the 25 prefix on your database filename? I don’t think it should matter, but I wonder if there’s any chance the code makes some assumption about correlation between filename and field name that’s causing a problem. (Again, I have no real reason to suspect this – just trying to think about what might be unique to your instance that could potentially cause problems).
It certainly seems like you are building correctly.
As a simple sanity check, what if you add a log statement above the line that’s triggering the backtrace. If your recompiled version is being used, then the line number in the backtrace should change, since you’ve pushed everything down by a line. Then you need to figure out why the log is not going anywhere. On the other hand, if the number doesn’t change, then maybe there is a problem with compiling or deployment.
Is that any help?
It sounds like you’re making progress! Please let us know if you need more help, or if you find anything that looks like a bug we should fix to prevent future confusion for other users working with this code outside of the typical VuFind context.
Hannah,
It looks like the DFLT_AUTH_CORE_NAME is used as a default value when no
<str name="authCoreName">core</str>
is found in the <requestHandler> definition for the browse handler in solrconfig.xml.
It looks like VuFind relies on this default since the authCoreName is currently not set in the default configuration.
I think you may have mentioned trying to set this value in the past, but I could be misremembering. In any case, it seems to me that either you need to adjust your configuration, or else there’s a bug in the code that is preventing the configuration from working as expected (which would not be entirely surprising, since it has quite possibly never been used before). If you think there is a bug at work here, please let me know and I can spend a little time investigating.
I also haven’t seen that simultaneous search problem before, but it’s good to know that upgrading the sqlite-jdbc jar file is a workaround. I’m copying Mark and Tod into this reply in case they have any thoughts on pros and cons of upgrading the default jar included with the project. I’m actually a little confused about the current state of things, since the vufind-browse-handler project itself appears to come with a 10-year-old sqlitejdbc-v053.jar file, while VuFind ships with the sqlite-jdbc-3.7.15-SNAPSHOT.jar that you mentioned. I’m not sure how this came about, but it seems like a situation in need of cleaning up.
In any case, I’m glad you’ve found a way to get things up and running, and hopefully next time will be easier. Thanks for bringing our attention to these issues along the way!
I would recommend doing the SQLite upgrade as a separate PR for clarity. Does it need to wait until after the current work is done, or is it a completely independent issue? And any idea if the sqlite code found in the vufind-browse-handler repo is even being used for anything since it’s so old? Is it possible that we really just want to delete that and upgrade the one bundled with VuFind?
- Demian
From: Tod Olson <t...@uchicago.edu>
Sent: Wednesday, December 19, 2018 10:25 AM
To: Demian Katz <demia...@villanova.edu>
Cc: Tod Olson <t...@uchicago.edu>; solrma...@googlegroups.com; Mark Triggs <m...@dishevelled.net>
Subject: Re: [solrmarc-tech] alpha-browse
On the SQLite driver, that is a situation in need of cleanup. And I'm glad to see that the driver has been updated, as it now includes shared object libraries for all of Linux, Windows, Mac OS X, FreeBSD. Clearly we will want to upgrade this JDBC driver.
I don't know how we want to coordinate, though. I could upgrade the driver as part of my current work, or do it as a separate PR once this round of optimizing is done. That would at least make it clear in the history when the SQLite JDBC driver was upgraded.
-Tod
On Dec 19, 2018, at 7:26 AM, Demian Katz <demia...@villanova.edu> wrote:
Fine with me!
"items":[{
"note":"",
"heading":"Goethe",
"useInstead":["Goethe, Johann Wolfgang von 1749-1832"],
"count":0,
"ids":[],
"extras":{"":[]},
"sort_key":"Goethe",
"seeAlso":[]},
{
{
"note":"",
"heading":"Goethe",
"useInstead":[],
"count":0,
"ids":[],
"extras":{"":[]},
"sort_key":"Goethe",
"seeAlso":[]},
{And one more question:4. The "Use Instead" and other syndetic relations in the author browse list come from the authority core. Do the authority cores have the same information for that heading?
-TodOn Feb 12, 2019, at 9:08 AM, Demian Katz <demia...@villanova.edu> wrote:That's quite odd! A few questions to think about:
1. How easily can you build a new test environment? It might be interesting to clone the working environment, then upgrade the service pack and see if it breaks.
2. Have you looked at the service pack changelog to see if there are relevant changes?
3. Have you compared sqlite versions in case that's a factor?
Hannah,
Regarding Tod's question, have you confirmed that the data in the indexes is identical by querying the offending records through the Solr admin panel? It's worth checking whether the data is getting lost at index creation
time or at data retrieval time.
"id":"161142842",
"source":"Unknown",
"record_type":"Unknown",
"heading":"Goethe, Johann Wolfgang von 1749-1832",
"use_for":["Goethe, Johann Wolfgang",
"Goethe, Johan Wolfgang von",
"Goethe, Johan Wolphgang",
"Goethe, Johan W. von",
"Goethe, Joh. Wolfg. v.",
"Goethe, J. Wolfgang",
"Goethe, J. W. v.",
"Goethe, J. W.",
............
.....
"id":"161142842",
"source":"Unknown",
"record_type":"Unknown",
"heading":"Goethe, Johann Wolfgang von 1749-1832",
"use_for":["Goethe, Johann Wolfgang",
"Goethe, Johan Wolfgang von",
"Goethe, Johan Wolphgang",
"Goethe, Johan W. von",
"Goethe, Joh. Wolfg. v.",
"Goethe, J. Wolfgang",
"Goethe, J. W. v.",
"Goethe, J. W.",
.....
.....
<fieldType name="string" class="solr.StrField" omitNorms="true" sortMissingLast="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<field name="heading" type="string" indexed="true" stored="true"/>
<field name="heading_keywords" type="text" indexed="true" stored="false"/>
<field name="id" type="string" indexed="true" stored="true"/>
<copyField source="heading" dest="heading_keywords"/>
<copyField source="see_also" dest="see_also_keywords"/>
<copyField source="use_for" dest="use_for_keywords"/>
Hmm, this is quite a mysterious situation!
Have you tried rebuilding the browse handler on the problematic machine to see if that makes a difference? I wonder if the newest master code (which is also included in release 5.1) will behave any differently from the version you're using (though be careful in case of backward incompatibilities). It might also be worth putting some logging into the code to try to trace this, if other methods of troubleshooting don't prove productive. I'm not sure where best to begin (maybe Tod has a suggestion), but I can take a look when I have a bit more free time if you need suggestions!
- Demian
Hannah,
Is it possible that there were differences in the Solr indexes between the boxes? The generated alphabrowse index is only part of what the browse handler does – it also does some real-time Solr lookups. So if the index files are the same, and the browse handler code is the same, but the results are different, the next logical candidate to look at for inconsistency would be the Solr index itself.
- Demian
From: solrma...@googlegroups.com <solrma...@googlegroups.com>
On Behalf Of Hannah
[ti_short] => Mode
...
[ta] => Array
(
[0] => Mode
[1] => Psychologie heute
)
Titel 2:[ti_short] => Psychologie heute
...
[ta] => Array
(
[0] => Psychologie heute
[1] => Taschenbuch
)
We want Titel 2 before Titel 1.