class BlacklightIiifSearch::SolrGenerator
Public Instance Methods
copy_suggester_library()
click to toggle source
# File lib/generators/blacklight_iiif_search/solr_generator.rb, line 84 def copy_suggester_library copy_file 'solr/lib/tokenizing-suggest-v1.0.1.jar', 'solr/lib/tokenizing-suggest-v1.0.1.jar' end
inject_iiif_suggest_schema()
click to toggle source
# File lib/generators/blacklight_iiif_search/solr_generator.rb, line 47 def inject_iiif_suggest_schema filepath = 'solr/conf/schema.xml' return if IO.read(filepath).include?('iiif_suggest') field_type_marker = '</types>' inject_into_file filepath, before: field_type_marker do "\n <!-- BEGIN Blacklight IIIF Search autocomplete config --> <fieldType name=\"textSuggestTokenizer\" class=\"solr.TextField\" positionIncrementGap=\"100\"> <analyzer> <tokenizer class=\"solr.WhitespaceTokenizerFactory\"/> <filter class=\"solr.StopFilterFactory\" ignoreCase=\"true\" words=\"stopwords_en.txt\"/> <filter class=\"solr.WordDelimiterGraphFilterFactory\"/> <filter class=\"solr.LowerCaseFilterFactory\"/> <filter class=\"solr.HyphenatedWordsFilterFactory\"/> <filter class=\"solr.RemoveDuplicatesTokenFilterFactory\"/> <!-- uncomment below to enable multi-word matches --> <!-- <filter class=\"solr.ShingleFilterFactory\" outputUnigrams=\"true\" outputUnigramsIfNoShingles=\"true\" maxShingleSize=\"3\" /> --> </analyzer> </fieldType> <!-- END Blacklight IIIF Search autocomplete config -->\n\n" end fields_marker = '</fields>' inject_into_file filepath, before: fields_marker do " <!-- BEGIN Blacklight IIIF Search autocomplete config --> <field name=\"iiif_suggest\" type=\"textSuggest\" indexed=\"true\" stored=\"true\" multiValued=\"true\" /> <!-- END Blacklight IIIF Search autocomplete config -->\n\n" end copy_marker = '</schema>' inject_into_file filepath, before: copy_marker do " <!-- BEGIN Blacklight IIIF Search autocomplete config --> <copyField source=\"all_text_timv\" dest=\"iiif_suggest\"/> <!-- END Blacklight IIIF Search autocomplete config -->\n\n" end end
inject_iiif_suggest_solrconfig()
click to toggle source
# File lib/generators/blacklight_iiif_search/solr_generator.rb, line 13 def inject_iiif_suggest_solrconfig return if IO.read('solr/conf/solrconfig.xml').include?('iiif_suggest') marker = '</config>' inject_into_file 'solr/conf/solrconfig.xml', before: marker do " <!-- BEGIN Blacklight IIIF Search autocomplete config --> <!-- solr-tokenizing_suggester is necessary to return single terms from the suggester --> <lib dir=\"${solr.install.dir:../../../..}/contrib\" regex=\"tokenizing-suggest-v1.0.1.jar\" />\n <searchComponent name=\"iiif_suggest\" class=\"solr.SuggestComponent\"> <lst name=\"suggester\"> <str name=\"name\">iiifSuggester</str> <str name=\"lookupImpl\">edu.stanford.dlss.search.suggest.analyzing.TokenizingLookupFactory</str> <str name=\"dictionaryImpl\">DocumentDictionaryFactory</str> <str name=\"suggestAnalyzerFieldType\">textSuggest</str> <str name=\"suggestTokenizingAnalyzerFieldType\">textSuggestTokenizer</str> <str name=\"contextField\">is_page_of_ssi</str> <str name=\"buildOnCommit\">true</str> <str name=\"field\">iiif_suggest</str> </lst> </searchComponent>\n <requestHandler name=\"/iiif_suggest\" class=\"solr.SearchHandler\" startup=\"lazy\"> <lst name=\"defaults\"> <str name=\"suggest\">true</str> <str name=\"suggest.count\">5</str> <str name=\"suggest.dictionary\">iiifSuggester</str> </lst> <arr name=\"components\"> <str>iiif_suggest</str> </arr> </requestHandler> <!-- END Blacklight IIIF Search autocomplete config -->\n\n" end end