2011-02-08 74 views
0

下面是做索引的代码,它读取cfsearch代码渲染分贝列导致

指数:

<cfquery name="Qryname" datasource="dsnnane"> 
SELECT id, eid, title 
FROM tbl1 
</cfquery> 

<cfindex 
    query="Qryname" 
    collection="events" 
    action="Update" 
    type="Custom" 
    title="title" 
    key="id" 
    body="eid,title"> 

搜索结果

<cfsearch 
    collection="events" 
    name="Qryname" 
    criteria="#Form.Criteria#"> 

    <!--- Output the record set. ---> 
    <cfoutput> 
    Your search returned #Qryname.RecordCount# result(s). 
    </cfoutput> 

    <cfoutput query="Qryname"> 
    <a href="page.cfm?eid=#eid#">#title#</a> 

    </cfoutput> 

的问题我只能输出我在cfindex中指定为标题的列。如果我尝试输出除了作为标题指定的其他列以外的任何其他列,则系统表示该var未定义。

在这种情况下,它说eid是未定义的。

我看到的文档,该列的值可以被输出

请参阅第3部分中的“搜索和显示查询结果”,这是

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7b35.html“查询返回的索引数据”下

任何想法?

谢谢。

回答

1

解决方案是使用cfindex中的自定义字段。如果您阅读cfindex的参考文献,您会发现它最多支持4个自定义字段,范围从custom1到custom4。

只是一个数据库表列分配到自定义字段中的一个,重新编制索引,然后访问该cfsearch自定义字段

<cfindex 
    query="Qryname" 
    collection="events" 
    action="Update" 
    type="Custom" 
    title="title" 
    key="id" 
    body="eid,title" 
    custom1="eid"> 

cfsearch:

<cfoutput query="Qryname"> 
<a href="page.cfm?eid=#custom1#">#title#</a> 
</cfoutput> 
1

我做启动:

<cfdump var="#Qryname#" /> 

看到的是从cfsearch返回。

+0

谢谢。对我的代码以及文档中的代码做了一次cfdump,它们是一样的。看起来我假定我提供的链接中的数据来自db中的表格(标题,分数,关键字,摘要,自定义1,列表),但事实并非如此,这些数据来自cfsearch。问题,你如何链接cfsearch的搜索结果? (url var与搜索结果在同一条记录中) – 2011-02-08 21:50:21