太阳黑子solr搜索负值

时间:2015-11-24 07:33:24

标签: solr ruby-on-rails-3.2 sunspot sunspot-rails sunspot-solr

我有一个Wallet模型,其中包含两个字段user_id,类型为integer,余数为浮点类型,并且已在Wallets上配置了solr搜索。

钱包余额有可能是负值。

以下是代码块:

Wallet.rb

searchable do
  text :balance

  text :user do
    user.name
  end
end

WalletsController.rb

def index
  @search = Wallet.search {
    fulltext params[:search]
    paginate :page => params[:page], :per_page => 10
  }
end

钱包/ index.html.erb

<%= form_tag wallets_path, :method => :get do %>
  <%= text_field_tag :search, params[:search] %>
  <%= submit_tag "Search" %>
<% end %>

通过上述实现,搜索在搜索具有负余额的钱包时返回错误记录。

  

例如:
    搜索:30
    结果:30,-30

     

搜索:-30
    结果:-100,500(没有余额的钱包= 30 / -30被退回)

有人能提供有效的逻辑来实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

必须更改solr配置,不要将“ - ”视为特殊字符,或者需要更改搜索词并将其传递给太阳黑子。