具有负值的 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。
我有一个钱包模型,其中包含两个整数类型的字段 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, -30search : -30
results : -100, 500 (Wallets without balance = 30/-30 are returned)
有人可以提供一个有效的逻辑来让它工作吗?
必须更改 solr 配置以不将“-”视为特殊字符,或者需要更改搜索词并将其传递给 Sunspot。