1

我正在尝试使用 Coldfusion10 进行 solr 搜索。我在 Solr 安装中使用了构建,并使用 CF Admin 创建了集合。它创建了一个 schema.xml,应该与 cfindex 和 cfsearch 等一起使用。

首先,我在 Coldfusion 中编写了一个导入脚本,通过查询获取数据并使用 cfindex 将其提供给 solr。

<cfquery name="myList" datasource="#db#" dbtype="#dbtype#">
    SELECTT TOP 20000 prodID,name,desc,accountID,shopID,ean,isbn
    FROM products
</cfquery>

<cfindex action="update" collection="testcollection" query="myList" type="custom" status="info" 
            key="prodID"   
            title="name"
            body="desc"  
            accountID_i=accountID
            shopID_i=shopID
            ean_s="ean"
            isbn_s="isbn"
            />

这很好用,但不够快。我可以完美搜索,如果我在搜索条件中拼写错误,它会给出我的建议查询结果。例如搜索“pleystation”建议g“playstation”等。

之后想尝试一下 Data Import Hanlder von Solr。我得到了一切工作,数据库连接,所有基本配置文件开始完全导入。

索引速度非常快,但没有给我任何建议等。我确定我没有正确配置 data-import.xml 文件。问题是,我不知道 Coldfusion10 如何处理我提供给 cfindex 标签并将其发送给 solr 的文件。

这是我尝试过的 data-config.xml 文件之一。

<dataConfig>
<dataSource driver="net.sourceforge.jtds.jdbc.Driver" type="JdbcDataSource" url="jdbc:jtds:sqlserver://192.168.1.1:1234/myDatabase;DatabaseName=myDatabase;" user="test" password="test"/>
<document name="products">
    <entity name="products" query="SELECT TOP 20000 prodID,name,desc,accountID,shopID,ean,isbn FROM products">
        <field column="prodID" name="uid"/>
        <field column="prodID" name="key"/>
        <field column="name" name="title"/>
        <field column="desc" name="body"/>
        <field column="accountID" name="accountid_i"/>
        <field column="shopID" name="shopid_i"/>
        <field column="ean" name="ean_s"/>
        <field column="isbn" name="isbn_s"/>
    </entity>
</document></dataConfig>

看起来使用 DIH Solr 处理内容的方式与使用 cfindex 时处理的方式不同。我尝试使用 cf 创建的 schema.xml 中的不同字段名称,例如比赛等,但这没有帮助。

对这个问题的任何帮助或建议都会很棒:)

问候马库斯

4

1 回答 1

1

使用 DIH 对其进行索引时存在一些差异。像键一样,自定义字段和类别不可用。DIH 主要限于索引数据库,只需要 3 个属性collection,type,action。如果您使用 DIH,则无需向 cfindex 提供文件。您只需要将 data-config.xml 放到集合的文件夹中。

其他然后建议您如何观察到 DIH Solr 是否有任何其他不一致?

谢谢库纳尔

于 2012-09-16T06:19:14.167 回答