Sunspot_solr समूह खंड में अपरिभाषित फ़ील्ड त्रुटि - mysql, सनस्पॉट, सनस्पॉट-रेल, सनस्पॉट-सोलर, rsolr

I have product_details table which belongs to श्रेणियाँ। product_details में id, नाम, मूल्य, छूट और श्रेणी_id जैसे फ़ील्ड होते हैं और श्रेणियां तालिका में id और नाम जैसे फ़ील्ड होते हैं। Mysql डेटाबेस का उपयोग कर रहा हूँ Am श्रेणी_id के आधार पर समूह उत्पाद विवरण करने की कोशिश कर रहा हूँ। ग्रुपिंग करने के लिए मैंने रेफर किया https://gist.github.com/f987013b2feec5b28456। लेकिन निम्न त्रुटि हो रही है

RSolr::Error::Http - 400 Bad Request
Error:     undefined field category_id

मेरा मॉडल ऐसा दिखता है

    class ProductDetail < ActiveRecord::Base
belongs_to :category

searchable do
text :name
integer :category_id
end

end

मेरा नियंत्रक इस तरह दिखता है

def index
@search_res1=ProductDetail.search do

adjust_solr_params do |params|
params[:group] = true
params[:"group.field"] = "category_id"
params[:"group.format"] = "simple"
end

end.execute
@[email protected]_res1.results
end

मेरी लॉग फ़ाइल में मेरा ऐसा होना

RSolr :: त्रुटि :: Http में ProductDetailsController # सूचकांक

RSolr :: त्रुटि :: Http - 400 खराब अनुरोध
त्रुटि:अपरिभाषित फ़ील्ड श्रेणी_आईडी

अनुरोध डेटा: "fq = type% 3APPORTDetail & fq = category_id_i% 3A% 281% 29% और प्रारंभ = 0 और पंक्तियों = 30 और समूह = true और group.field = श्रेणी_id और group.format - simple & q =% 2A% 3A% 2A

बैकट्रेस: ​​/home/toshiba/.rvm/gems/ruby-1.9.2-p290/gems/rsolr-1.0.8/lib/rsolr/client.rb:230.in 'adapt_response "
/home/toshiba/.rvm/gems/ruby-1.9.2-p290/gems/rsolr-1.0.8/lib/rsolr/client.rb:167:in `निष्पादित करें
/home/toshiba/.rvm/gems/ruby-1.9.2-p290/gems/rsolr-1.0.8/lib/rsolr/client.rb:161:in 'send_and_receive " 

क्रिप्या मेरि सहायता करे। धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

यहाँ दो बातें:

1. Sunspot में समूह बनाना केवल समर्थित है string खेत। इसलिए अपने को बदलो searchable निम्नलिखित के लिए ब्लॉक करें:

class ProductDetail < ActiveRecord::Base
belongs_to :category

searchable do
text :name
string :category_id_str do
category_id.to_s
end
end
end

2. विशेषता नाम परिवर्तन को प्रतिबिंबित करने के लिए समूह params बदलें:

def index
@search_res1=ProductDetail.search do
adjust_solr_params do |params|
params[:group] = true
params[:"group.field"] = "category_id_str_s"
params[:"group.format"] = "simple"
end
end.execute
@[email protected]_res1.results
end

मुझे लगता है कि यहाँ सनस्पॉट अतिरिक्त पर जोड़ रहा है _s जब यह इसे अनुक्रमित करता है तो विशेषता को।


जवाब के लिए 0 № 2

हो सकता है कि आपके स्कीमा.xml में आपका / usr / share / solr / conf एक प्रकार का पूर्णांक गुम हो?

यहाँ मेरा उदाहरण के रूप में है:

<schema name="sunspot" version="1.0">
<types>
<!-- field type definitions. The "name" attribute is
just a label to be used by field definitions.  The "class"
attribute and any other attributes determine the real
behavior of the fieldType.
Class names starting with "solr" refer to java classes in the
org.apache.solr.analysis package.
-->
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="string" class="solr.StrField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="tdouble" class="solr.TrieDoubleField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="boolean" class="solr.BoolField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="date" class="solr.DateField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="sdouble" class="solr.SortableDoubleField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="sfloat" class="solr.SortableFloatField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="sint" class="solr.SortableIntField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="slong" class="solr.SortableLongField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="tint" class="solr.TrieIntField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
</types>

संबंधित सवाल
सबसे लोकप्रिय