#ruby-on-rails-3 #solr #sunspot #sunspot-solr
#ruby-on-rails-3 #solr #sunspot #sunspot-solr
Вопрос:
Привет, я пытаюсь включить автозаполнение в свое приложение, но оно выдает ошибку.
sunspot-2.1.1/lib/sunspot/dsl/fields.rb:93:in
rescue in method_missing': undefined method
autocomplete' for #Sunspot::DSL::Fields:0x000001029b7cd0 (NoMethodError)
Ниже приведены изменения, которые я сделал. Я ценю вашу помощь.
Модель
def category_name
self.name
end
searchable do
text :name
autocomplete :category_name, :as => :name
end
Solr Schema.xml
<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
<!-- The index analyzer adds parts of the field from 2 - 25 chars including whitespace etc. -->
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="25"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<!-- The query analyzer takes the whole input, whitespace and all -->
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="autosuggest" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.LetterTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.LetterTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
HTML
<input id="category_name" name="search" size="30" type="text" /> <script>$('#category_name').autocomplete('http://127.0.0.1:8982/solr/', 'name', {});</script>
<script>$('#search').autocomplete('http://127.0.0.1.120:8982/solr/', 'search', {});</script>
Ответ №1:
Я изменил JRE с OpenJDK на Oracle и переустановил все. Теперь это работает.