【问题标题】:How to set infix & prefix indexing in sphinx search如何在 sphinx 搜索中设置中缀和前缀索引
【发布时间】:2017-08-29 05:36:47
【问题描述】:

我想为表中的少数字段设置中缀索引,并为表中的其他一些字段设置前缀索引。有没有办法在狮身人面像中做到这一点?

我正在使用 dict=keywords 在 Sphinx 中寻找选项 infix_fields & prefix_fields

【问题讨论】:

    标签: ruby-on-rails-3 sphinx thinking-sphinx


    【解决方案1】:

    为此,您可以在索引定义中为每个字段设置它:

    indexes name, :infixes => true
    indexes location, :prefixes => true
    

    dict 设置只能针对每个索引进行设置,因此如果您希望将其用于特定索引,请将其添加到这些索引定义中:

    set_property :dict => ‘keywords’
    

    或者对于所有索引,将其添加到 config/thinking_sphinx.yml 文件中的每个环境中:

    development:
      dict: keywords
    test:
      dict: keywords
    production:
      dict: keywords
    

    虽然在某些时候,我相信关键字将是(如果还没有的话)Sphinx 的默认字典设置。

    【讨论】:

      【解决方案2】:
        ThinkingSphinx::Index.define(:incident, DEFAULT_INDEX_OPTIONS.merge(name: "incident_#{i}"), &Searchable.beetilable_index('Incident', index_count: incident_index_count, index_id: i) {
          indexes name
          set_property :min_prefix_len => 3
        })
      
        #
        # infix index (only for the title, symptom columns)
        #
        ThinkingSphinx::Index.define(:incident, DEFAULT_INDEX_OPTIONS.merge(name: "incident_#{i + incident_index_count + 1}"), &Searchable.beetilable_infix_index('Incident', index_count: incident_index_count, index_id: i) {
          indexes location
          set_property :min_infix_len => 3
        })
      end 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多