我正在尝试使用 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 中的不同字段名称,例如比赛等,但这没有帮助。
对这个问题的任何帮助或建议都会很棒:)
问候马库斯