具有负值的 Sunspot solr 搜索

Sunspot solr search with negative value

我有一个钱包模型,其中包含两个整数类型的字段 user_id 和浮点类型的余额,并且在钱包上配置了 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

Wallets/index.html.erb

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

通过上述实施,搜索在搜索余额为负数的电子钱包时返回不正确的记录。

Ex:
search : 30
results : 30, -30

search : -30
results : -100, 500 (Wallets without balance = 30/-30 are returned)

有人可以提供一个有效的逻辑来让它工作吗?

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