<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zhou1_zhen2 (周振)</title>
    <link>https://ruby-china.org/zhou1_zhen2</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>请问哪位朋友，能开发一个 SketchUp 插件啊 (有赏金的)！</title>
      <description>&lt;h2 id="sketchup搜索插件开发"&gt;sketchup 搜索插件开发&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;需求描述：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;开发sketchup一个搜索插件，使用的语言是ruby。
1. 我朋友这边提供html页面
2. ruby这边根据需求，将页面加载进来，根据搜索结果，将请求发送给sketchup，返回查询结果
3. html接收查询结果

具体需求可以电话或邮件详细沟通，包括费用
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;联系人及方式
&lt;pre&gt;联系人：郭宇（先生）
联系电话（微信同号）：17020303036
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>zhou1_zhen2</author>
      <pubDate>Thu, 03 Jan 2019 12:11:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/37967</link>
      <guid>https://ruby-china.org/topics/37967</guid>
    </item>
    <item>
      <title>sunspot</title>
      <description>&lt;ol&gt;
&lt;li&gt;配置文件 sunspot.yml 默认&lt;/li&gt;
&lt;li&gt;solr/conf/schema.xml&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;      &lt;span class="nt"&gt;&amp;lt;fieldType&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.TextField"&lt;/span&gt; &lt;span class="na"&gt;omitNorms=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!--
      &amp;lt;analyzer&amp;gt;
        &amp;lt;tokenizer class="solr.StandardTokenizerFactory"/&amp;gt;
        &amp;lt;filter class="solr.StandardFilterFactory"/&amp;gt;
        &amp;lt;filter class="solr.LowerCaseFilterFactory"/&amp;gt;
        &amp;lt;filter class="solr.PorterStemFilterFactory"/&amp;gt;
      &amp;lt;/analyzer&amp;gt;
--&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;analyzer&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"query"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tokenizer&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.StandardTokenizerFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;filter&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.StandardFilterFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;filter&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.LowerCaseFilterFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/analyzer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;analyzer&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"index"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tokenizer&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.StandardTokenizerFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;filter&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.StandardFilterFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;filter&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"solr.LowerCaseFilterFactory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/analyzer&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/fieldType&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;model 文件：
```ruby
searchable(:auto_index =&amp;gt; true,:auto_remove =&amp;gt; true) do
text :brand_name, :stored =&amp;gt; true
text :store_name, :stored =&amp;gt; true
string :find_store_name
string :find_store_name
end&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;def find_store_name
    self.store_name
  end&lt;/p&gt;

&lt;p&gt;def find_brand_name
    self.brand_name
  end&lt;/p&gt;

&lt;p&gt;def after_save
    Message.reindex
    Sunspot.commit
  end&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
4. 结果全是乱的，如：
   从数据库里按条件查询得出的品牌有10个;而通过sunspot的得出的只有4个。
   不知道问题出在哪里，有的品牌可以，有的品牌就不可以。

&lt;/code&gt;&lt;/pre&gt;</description>
      <author>zhou1_zhen2</author>
      <pubDate>Fri, 02 May 2014 09:55:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/18961</link>
      <guid>https://ruby-china.org/topics/18961</guid>
    </item>
    <item>
      <title>sunspot 配置问题，查询结果很难理解，请大家帮忙解决下吧</title>
      <description>&lt;p&gt;model 的配置正如：&lt;br&gt;
searchable(:auto_index =&amp;gt; true,:auto_remove =&amp;gt; true) do
    #searchable do
    text :store_name, :stored =&amp;gt; true
    text :title, :stored =&amp;gt; true
    text :introduction, :stored =&amp;gt; true
    text :brand_name, :stored =&amp;gt; true
    text :grade_category, :stored =&amp;gt; true
    text :grade_variety, :stored =&amp;gt; true
    text :company_name, :stored =&amp;gt; true
    text :commodity_name, :stored =&amp;gt; true
    string :store_name
    string :brand_name
    string :grade_category
    boolean :state
    boolean :stick
    integer :store_id
    integer :company_id
    integer :brand_id, :stored =&amp;gt; true
    integer :grade_id
    integer :sequence
    double :discount_price
    double :discount_rate
    double :original_price
    time :end_time&lt;/p&gt;

&lt;p&gt;end&lt;/p&gt;

&lt;p&gt;controller 操作如下：
    search_value = params[:query].nil? ? "" : (Message.rmmseg_cpp params[:query])
    logger.info search_value
    price = params[:price].split("-") unless params[:price].nil?
    rate = params[:rate].split("-") unless params[:rate].nil?
    brand_id = Lexicon.where(:value =&amp;gt; 1, :name =&amp;gt; params[:brand]).first.id unless params[:brand].nil?
    &lt;a href="/messages" class="user-mention" title="@messages"&gt;&lt;i&gt;@&lt;/i&gt;messages&lt;/a&gt; = Message.search do
        fulltext search_value
        with(:grade_category, params[:grade]) unless params[:grade].nil?
        #with(:brand_name, params[:brand]) unless params[:brand].nil?
        with(:brand_name,params[:brand]) unless params[:brand].nil?
        #with(:brand_id, brand_id) unless brand_id.nil?
        with(:store_name, params[:store]) unless params[:store].nil?&lt;/p&gt;

&lt;p&gt;with(:state, true)
        with(:discount_price, price[0].to_d .. price[1].to_d)  unless params[:price].nil?
        with(:discount_rate, rate[0].to_d*10 .. rate[1].to_d*10) unless params[:rate].nil?
        #with(:end_time).greater_than Time.now
        with(:end_time).greater_than_or_equal_to DateTime.now.strftime("%F").to_datetime
        order_by(:stick, :desc)
        order_by(:sequence, :desc)
        order_by(:discount_rate, :asc)
        order_by(:brand_name, :asc)
        order_by(:discount_price, :asc)&lt;/p&gt;

&lt;p&gt;paginate :page =&amp;gt; params[:page], :per_page =&amp;gt; SALE_PER_PAGE
    end.results
    &lt;a href="/search_text" class="user-mention" title="@search_text"&gt;&lt;i&gt;@&lt;/i&gt;search_text&lt;/a&gt; = params[:query]&lt;/p&gt;

&lt;p&gt;功能操作日志&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;存在差异情况如下：
1.1.查询 A02 能正常显示，参数如下：
[ path=select parameters={fq: ["type:Message", "brand_name_s:A02", "state_b:true", "end_time_d:[2014-01-03T00:00:00Z TO &lt;em&gt;]"], sort: "stick_b desc, sequence_i desc, discount_rate_e asc, brand_name_s asc, discount_price_e asc", start: 0, rows: 16, q: "&lt;/em&gt;:*"} ]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1.2.查询 HOTWIND 不能正常显示，参数如下：
[ path=select parameters={fq: ["type:Message", "brand_name_s:HOTWIND", "state_b:true", "end_time_d:[2014-01-03T00:00:00Z TO &lt;em&gt;]"], sort: "stick_b desc, sequence_i desc, discount_rate_e asc, brand_name_s asc, discount_price_e asc", start: 0, rows: 16, q: "&lt;/em&gt;:*"} ]&lt;/p&gt;

&lt;p&gt;2.全文搜索 A02 和 HOTWIND 都能正常显示，参数如下：
2.1 全文搜索 A02
[ path=select parameters={fq: ["type:Message", "state_b:true", "end_time_d:[2014-01-03T00:00:00Z TO &lt;em&gt;]"], sort: "stick_b desc, sequence_i desc, discount_rate_e asc, brand_name_s asc, discount_price_e asc", q: "A02", fl: "&lt;/em&gt; score", qf: "store_name_texts title_texts introduction_texts brand_name_texts grade_category_texts grade_variety_texts company_name_texts commodity_name_texts", defType: "edismax", start: 0, rows: 16} ]&lt;/p&gt;

&lt;p&gt;2.2 全文搜索 HOTWIND
[ path=select parameters={fq: ["type:Message", "state_b:true", "end_time_d:[2014-01-03T00:00:00Z TO &lt;em&gt;]"], sort: "stick_b desc, sequence_i desc, discount_rate_e asc, brand_name_s asc, discount_price_e asc", q: "HOTWIND", fl: "&lt;/em&gt; score", qf: "store_name_texts title_texts introduction_texts brand_name_texts grade_category_texts grade_variety_texts company_name_texts commodity_name_texts", defType: "edismax", start: 0, rows: 16} ]&lt;/p&gt;

&lt;p&gt;期间也 reindex 或 stop,start 过，效果一样，配置了半天，可能还是 model 配置有问题，请大家帮忙分析下吧。如：怎么配置才能使 HOTWIND 也能正常显示出记录出来&lt;/p&gt;

&lt;p&gt;通过&lt;a href="http://localhost:8982/solr/#/development/queryquery%E6%B5%8B%E8%AF%95%EF%BC%8Cfq%E4%B8%8Bbrand_name_s:A02%EF%BC%8CA02%E5%B0%B1%E5%8F%AF%E4%BB%A5%E6%9F%A5%E5%87%BA%E6%95%B0%E6%8D%AE%EF%BC%8Cfq%E4%B8%8Bbrand_name_s:HOTWIND%EF%BC%8CHOTWIND%E5%B0%B1%E6%9F%A5%E4%B8%8D%E5%87%BA%E6%9D%A5%E3%80%82" rel="nofollow" target="_blank"&gt;http://localhost:8982/solr/#/development/queryquery测试，fq下brand_name_s:A02，A02就可以查出数据，fq下brand_name_s:HOTWIND，HOTWIND就查不出来。&lt;/a&gt;页面进行了&lt;/p&gt;</description>
      <author>zhou1_zhen2</author>
      <pubDate>Fri, 03 Jan 2014 17:11:15 +0800</pubDate>
      <link>https://ruby-china.org/topics/16598</link>
      <guid>https://ruby-china.org/topics/16598</guid>
    </item>
  </channel>
</rss>
