Rails Sunspot solr搜索返回同一记录的多个条目

时间:2015-11-28 18:56:40

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

我在Rails应用程序中使用Sunspot solr搜索列出用户。

用户控制器:

Target _CompileJava:

    C:\Program Files (x86)\Java\jdk1.7.0_71\\bin\javac.exe -J-Dfile.encoding=UTF8 -d obj\Debug\android\bin\classes -classpath "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v6.0\mono.android.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v4\23.0.1.3\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v4\23.0.1.3\embedded\libs\internal_impl-23.0.1.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v7.AppCompat\23.0.1.3\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v7.MediaRouter\23.0.1.3\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v7.MediaRouter\23.0.1.3\embedded\libs\internal_impl-23.0.1.jar;C:\Users\nemes\AppData\Local\Xamarin\Android.Support.v7.RecyclerView\23.0.1.3\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\GooglePlayServices.Base\8.1.0\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\GooglePlayServices.Basement\8.1.0\embedded\classes.jar;C:\Users\nemes\AppData\Local\Xamarin\GooglePlayServices.Maps\8.1.0\embedded\classes.jar" -bootclasspath C:\Users\nemes\AppData\Local\Android\android-sdk\platforms\android-23\android.jar -encoding UTF-8 "@C:\Users\nemes\AppData\Local\Temp\tmp4C9E.tmp" 

    obj\Debug\android\src\com\companyname\murakami_kiev\R.java:1: error: illegal character: \0

用户模型:

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

每当我更新任何用户时,搜索会产生同一记录的两个条目,访问这两个条目将带我到同一记录。

searchable do
  text :email

  text :user_profile do
    user_profile.name
  end
end

每次我需要运行

/users/1

解决这个问题。

有没有办法只返回一个条目,即使在更新后?

1 个答案:

答案 0 :(得分:0)

真的很难找到。但这里有一些选择:

1)确保您有2个索引记录。这里有一些建议如何调试:Debugging Solr search queries on Sunspot

2)查看config / sunspot.yml以查看回调设置Github sunspot example应该有auto_remove_callback设置