Ah right. It needs to be a string:

  indexes "regexp_matches(callid, '\^\[0-9\]\*')", :as => :phone

On 24/05/2013, at 6:50 PM, Дмитрий Карбышев wrote:

> You are totally right, i tried to remove this definition and everything works 
> without it!
> i'm using postgres and regexp_matches is posgres function, that can be used 
> direcly in console as other sql terms, so i thought that it will work...
> 
> On Friday, May 24, 2013 12:37:12 PM UTC+4, Pat Allan wrote:
> The issue is very likely this line:
>   indexes regexp_matches(callid,'\^\[0-9\]\*'), :as => :phone
> 
> Index definitions are translated to SQL statements, so you're not able to 
> call methods - especially not methods expected to occur within the scope of 
> each instance.
> 
> You could translate this line to use a SQL snippet instead, or perhaps the 
> regex translation isn't even required?
> 
> On 24/05/2013, at 6:19 PM, Дмитрий Карбышев wrote:
> 
> > Hi, i'm trying to set up indexing in my rails app and get unexpected 
> > message, help me please.
> > rake ts:configure  --trace
> > ** Invoke ts:configure (first_time)
> > ** Invoke environment (first_time)
> > ** Execute environment
> > ** Execute ts:configure
> > Generating configuration to /home/test/krabe/config/development.sphinx.conf
> > rake aborted!
> > undefined method `active_record' for nil:NilClass
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:80:in
> >  `reflection_for'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:50:in
> >  `join_for'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:65:in
> >  `joins_for'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/associations.rb:18:in
> >  `aggregate_for?'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:22:in
> >  `block in aggregate?'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
> >  `each'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
> >  `any?'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:21:in
> >  `aggregate?'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:34:in
> >  `casted_column_with_table'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/property_sql_presenter.rb:15:in
> >  `to_select'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:127:in
> >  `collect'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:127:in
> >  `select_clause'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_builder.rb:10:in
> >  `sql_query'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_source.rb:120:in
> >  `prepare_for_render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/active_record/sql_source.rb:62:in
> >  `render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
> >  `block in render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
> >  `collect'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in
> >  `render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/core/index.rb:53:in
> >  `render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
> >  `block in render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
> >  `collect'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in
> >  `render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:78:in
> >  `render'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
> >  `block in render_to_file'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
> >  `open'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/configuration.rb:84:in
> >  `render_to_file'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/rake_interface.rb:4:in
> >  `configure'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/gems/thinking-sphinx-3.0.3/lib/thinking_sphinx/tasks.rb:4:in
> >  `block (2 levels) in <top (required)>'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:246:in
> >  `call'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:246:in
> >  `block in execute'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:241:in
> >  `each'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:241:in
> >  `execute'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:184:in
> >  `block in invoke_with_call_chain'
> > /home/test/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in 
> > `mon_synchronize'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:177:in
> >  `invoke_with_call_chain'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/task.rb:170:in
> >  `invoke'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:143:in
> >  `invoke_task'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
> >  `block (2 levels) in top_level'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
> >  `each'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:101:in
> >  `block in top_level'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:110:in
> >  `run_with_threads'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:95:in
> >  `top_level'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:73:in
> >  `block in run'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:160:in
> >  `standard_exception_handling'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/lib/rake/application.rb:70:in
> >  `run'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.4/bin/rake:33:in 
> > `<top (required)>'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/bin/rake:19:in `load'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@global/bin/rake:19:in `<main>'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/bin/ruby_noexec_wrapper:14:in 
> > `eval'
> > /home/test/.rvm/gems/ruby-2.0.0-p0@krabe/bin/ruby_noexec_wrapper:14:in 
> > `<main>'
> > Tasks: TOP => ts:configure
> > 
> > thinking-sphinx=3.0.3
> > sphinx = 2.0.8
> > 
> > I have a simple model app/models/ivr_log.rb
> > class IvrLog < ActiveRecord::Base
> > 
> >   attr_reader :callid, :event_name, :log_level, :message, :registered_at
> > 
> >   def readonly?
> >     return true
> >   end
> > 
> >   def before_destroy
> >     raise ActiveRecord::ReadOnlyRecord
> >   end
> > 
> > end
> > 
> > and app/indices/ivr_log_index.rb:
> > ThinkingSphinx::Index.define :ivr_log, :with => :active_record do
> >   indexes :portal
> >   indexes :event_name
> >   indexes :log_level
> >   indexes :message
> >   indexes regexp_matches(callid,'\^\[0-9\]\*'), :as => :phone
> >   group_by "phone"
> > 
> >   has :id, :registered_at, :callid
> > end
> > 
> > I lso have table named ivr_logs in my database
> > 
> > -- 
> > You received this message because you are subscribed to the Google Groups 
> > "Thinking Sphinx" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to [email protected].
> > To post to this group, send email to [email protected].
> > Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >  
> >  
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

 

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to