gpt4 book ai didi

coldfusion - cfhttp 和 cfhttpparam 的行为非常奇怪

转载 作者:行者123 更新时间:2023-12-02 14:37:42 24 4
gpt4 key购买 nike

新年快乐,

新年让我陷入了编码问题。我正在使用 ColdFusion 和 CFML 引擎“openBD”。我有一个 CFC 来处理我使用的搜索引擎(SOLR 搜索引擎)的请求。我正在向 CFC“喂食”一些论点。 CFC 发挥应有的作用。但是,当我尝试传递特定参数 (#apofasi_taxonomy #) 时,CFC 不会返回任何内容(如果我将上述参数直接传递给搜索引擎 – 不使用 CFC – 我可以看到返回/搜索结果)

CFC 的一部分:

  <cffunction name="searchP" access="remote" returnFormat="json">         
<cfargument name="q" type="string" default="" required="yes">
<cfargument name="apofasi_taxonomy" type="string" default="apofasi_taxonomy:(*)" required="yes">
<cfargument name="apofasi_tmima" type="string" default="apofasi_tmima:(*)" required="yes">
<cfargument name="apofasi_date" type="string" default="apofasi_date:(*)" required="yes">
<cfargument name="apofasi_number" type="string" default="apofasi_number:(*)" required="yes">
<!---<cfargument name="apofasi_taxonomy" type="string" default="*">
<cfargument name="apofasi_tmima" type="string" default="*">
<cfargument name="apofasi_date" type="string" default="*">
<cfargument name="apofasi_number" type="string" default="*">--->

<cfset theUrl = 'http://localhost/solr/areios_pagos/select/?'>

<cfhttp method="get" url="#theUrl#" port="8090" result="rs" username="abcd" password="********">
<cfhttpparam type="url" name="q" value="#q#">
<cfhttpparam type="url" name="fq" value="#apofasi_taxonomy#+#apofasi_tmima#+#apofasi_date#+#apofasi_number#">
<!---<cfhttpparam type="url" name="fq" value="apofasi_taxonomy:(3068 || ΠΟΙΝΙΚΕΣ) AND apofasi_date:(2010)">--->
<!---<cfhttpparam type="url" name="fq" value="apofasi_taxonomy:(3068) AND apofasi_date:(*) AND apofasi_number:(*)">--->
<cfhttpparam type="url" name="rows" value="120">
<cfhttpparam type="url" name="wt" value="json">
<cfhttpparam type="url" name="sort" value="score desc">
<cfhttpparam type="url" name="hl" value="true">
<cfhttpparam type="url" name="hl.fl" value="content,title">
<cfhttpparam type="url" name="fl" value="grid_title,title,url,ida,model,search_tag,solr_id">
<cfhttpparam type="url" name="f.content.hl.alternateField" value="content">
<cfhttpparam type="url" name="hl.maxAlternateFieldLength" value="800">
</cfhttp>

请注意,搜索引擎使用如下网址:

http://localhost/solr/areios_pagos/select/?q=blahblah&fq=apofasi_taxonomy:(3068)+ apofasi_tmima:(Α || Ζ)+ apofasi_date:(2007 || 2012)+apofasi_number:(666)

到目前为止我已经检查过:我传递给 CFC 的参数是 100% OK(来自 html),我已经仔细检查了搜索引擎是否可以使用上述 url 语法。但我注意到一个非常奇怪的行为。当我从 URL 中完全排除 #apofasi_taxonomy##apofasi_tmima# 参数时,CFC 正在工作(它返回结果)。#apofasi_taxonomy# 参数采用的值为:apofasi_taxonomy:(ΠΟΙΝΙΚΕΣ) , apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ) , apofasi_taxonomy:(3068)apofasi_taxonomy:(ΠΟΙΝΙΚΕΣ || 3068) , apofasi_taxonomy:(ΠΟΙΝΙΚΕΣ || ΠΟΛΙΤΙΚΕΣ)等等。

我还注意到一件事,#apofasi_taxonomy# 参数适用于以下值:apofasi_taxonomy(ΠΟΙΝΙΚΕΣ) , apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ)apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ || ΠΟΙΝΙΚΕΣ)但它不适用于 apofasi_taxonomy:(3068) , apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ || 3068) , apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ || 3068)apofasi_taxonomy:(ΠΟΛΙΤΙΚΕΣ || ΠΟΛΙΤΙΚΕΣ || 3068) 。这不是很奇怪吗?

#apofasi_tmima# 参数采用的值为:Α || Α1 || Α2 || Β || Β2 || Γ || Δ || Ε || ΣΤ || Ζ || ΟΛΟΜΕΛΕΙΑ例如apofasi_tmima(Β || Β2 || ΟΛΟΜΕΛΕΙΑ) .

请记住,上述值是希腊语的。

有人可以帮忙吗?

恕我直言,汤姆

编辑:将问题评论中提供的请求 XML 移至问题

<fieldType name="text_areios_pagos" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_el.txt" enablePositionIncrements="true"/>
<filter class="solr.GreekLowerCaseFilterFactory"/>
<filter class="solr.GreekStemFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" enablePositionIncrements="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_el.txt" enablePositionIncrements="true"/>
<filter class="solr.GreekLowerCaseFilterFactory"/>
<filter class="solr.GreekStemFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>

最佳答案

您可能需要向 cfhttp 标记添加字符集属性

    <cfhttp ... charset="ISO-8859-7" ...

关于coldfusion - cfhttp 和 cfhttpparam 的行为非常奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com