斯芬克斯用户正在切换到Solr

斯芬克斯用户正在切换到Solr,solr,sphinx,Solr,Sphinx,我是斯芬克斯用户,已经3年了。我现在的问题是集群和方面支持 关于方面的支持,我知道我也可以用sphinx来实现,而且它会运行,但是集群对我来说是一个非常大的问题 我真的很喜欢斯芬克斯,因为它很容易使用,速度也很快,但我需要在接下来的几个月里换成Solr 如果有人有时间给我解释的话,我想知道一些基本知识。我将在Sphinx中发布一些例子,我希望你能在Solr中给我举个例子 安装时,我选择了Debian上的Solr和Tomcat: apt get install solr tomcat curl-y

我是斯芬克斯用户,已经3年了。我现在的问题是集群和方面支持

关于方面的支持,我知道我也可以用sphinx来实现,而且它会运行,但是集群对我来说是一个非常大的问题

我真的很喜欢斯芬克斯,因为它很容易使用,速度也很快,但我需要在接下来的几个月里换成Solr

如果有人有时间给我解释的话,我想知道一些基本知识。我将在Sphinx中发布一些例子,我希望你能在Solr中给我举个例子

安装时,我选择了Debian上的Solr和Tomcat:

apt get install solr tomcat curl-y

使用Tomcat的这个选项是否更好更快、更稳定。。。那码头呢?两者都支持集群吗

其次,我生成了一个Dataimport处理程序,其中包含:

<dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost/database"
              user="root"
              password="root" 
      batchSize="-1"/>

<document name="doc">
    <entity name="de_job"
              query="select * from de_job">
        <field column="title" name="title" />
    <field column="description" name="description" />
    <field column="job_id" name="id" />
    </entity>
</document>
如何在Solr中启用2个或更多不同的索引

以下表格中是否有不同的实体

<entity name="de_job"
              query="select * from de_job">
        <field column="title" name="title" />
    <field column="description" name="description" />
    <field column="job_id" name="id" />
    </entity>

<entity name="at_job"
              query="select * from at_job">
        <field column="title" name="title" />
    <field column="description" name="description" />
    <field column="job_id" name="id" />
    </entity>
如何仅重新索引一个索引?重新索引查询中是否有任何参数: 例如,在何处仅选择de_作业

我在斯芬克斯有两个名字:min_word_len和min_infix_len。如何在Solr中使用这个?我在哪里可以配置它

我已经在斯芬克斯自定义停止词定义。如何在Solr中为每个索引定义和使用它们

在sphinx中,我必须定义charset_表,因为sphinx无法搜索德语Umlauts或其他UTF-8字符,如果它们没有被charset_表翻译。我在索尔需要同样的吗

在索引中,当我旋转索引时,sphinx正在创建一个tmp文件,重新索引数据并动态旋转它。通过这种方式,我的应用程序在sphinx重新索引所有内容的时候运行。如何用Solr解决这个问题?当我查看Solr的日志文件时,当索引正在重建时,它将保持:

从索引中删除所有文档

什么是坏的,因为在这个时候我的应用程序将无法工作。我怎样才能优雅地解决这个问题

为每个索引创建单独的核心。然后每一个都有自己的数据导入URL

一个最小的单词,忽略这个,不需要。b minu infix_len,现在可以忽略,除非执行一系列通配符查询。如果你这样做,那么考虑使用NGC.

在您的模式中,定义一个stopword过滤器并将stopwords放入一个文件中。更好的是,不要使用停止语。这是32位计算机和40兆字节磁盘留下的坏习惯

您可以在模式中使用ISOLatin1AccentFilterFactoryhttp://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters/solr.ISOLatin1AccentFilterFactory.

这是正常的,在索引完成并提交新内容之前,删除不会真正发生


如果你的意思是集群,比如我不使用Solr,所以不知道它是否还有其他东西——它似乎只是在使用Carrot2。我用胡萝卜2和斯芬克斯很好。就像索尔与胡萝卜2分离一样,斯芬克斯也可以保持分离。Carrot2有一个文档集群服务器,可以很容易地启动Carrot2的实例。然后,您的应用程序可以使用sphinx的结果调用它。下面是使用sphinx运行搜索的基本演示,然后使用Carrot2 Hi Walter进行集群,谢谢您的快速回答。我现在有两个问题:第一点:如何定义,索引指向哪个核心?你能给我举个例子吗?第五点:意思是,它像狮身人面像一样工作?它将在重新索引期间显示旧信息?Solr核心是一台Solr服务器内的独立搜索配置。此处的更多信息:是的,搜索在索引期间不间断地继续。
<entity name="de_job"
              query="select * from de_job">
        <field column="title" name="title" />
    <field column="description" name="description" />
    <field column="job_id" name="id" />
    </entity>

<entity name="at_job"
              query="select * from at_job">
        <field column="title" name="title" />
    <field column="description" name="description" />
    <field column="job_id" name="id" />
    </entity>