我有一个Solr MoreLike这个查询产生了一些确定无关的结果。当我查看该查询的调试时,我可以看到该查询在换行符上匹配。Solr MoreLikeThis查询匹配换行符
这里的查询:
MLT Q = is_lesson_id:49029 &开始= 0 &行数= 3 & FL = *,得分&重量= JSON & FQ = sm_sitename {标签=网站!}:(FCM OR BCM OR CCM)& mlt.interestingTerms =细节& mlt.match.include =假& mlt.match.offset = 0 & mlt.fl =标题,正文& mlt.mintf = 2 & mlt.mindf = 1个& MLT。 minwl = 4 & mlt.boost = true & mlt.qf = title^1000 body &缩进=上& debugQuery =上
这里的解释:
"interestingTerms":[
"body:rabbit",1.0,
"body:bunni",0.8582874,
"body:easter",0.7999738,
"body: ",0.5719101,
"body:ampampnbsp",0.51804715,
"body:nbsp",0.36014518],
"debug":{
"rawquerystring":"is_lesson_id:49029",
"querystring":"is_lesson_id:49029",
"parsedquery":"body:rabbit body:bunni^0.8582874
body:easter^0.7999738
body: ^0.5719101
body:ampampnbsp^0.51804715
body:nbsp^0.36014518",
"parsedquery_toString":"body:rabbit
body:bunni^0.8582874
body:easter^0.7999738
body: ^0.5719101
body:ampampnbsp^0.51804715
body:nbsp^0.36014518",
"explain":{
"p5zqzz/node/681":"\n0.14956066 = (MATCH) product of:\n 0.44868195 = (MATCH) sum of:\n 0.20911716 = (MATCH) weight(body:bunni^0.8582874 in 327), product of:\n 0.5523649 = queryWeight(body:bunni^0.8582874), product of:\n 0.8582874 = boost\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.3785852 = (MATCH) fieldWeight(body:bunni in 327), product of:\n 1.0 = tf(termFreq(body:bunni)=1)\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.0546875 = fieldNorm(field=body, doc=327)\n 0.2395648 = (MATCH) weight(body:easter^0.7999738 in 327), product of:\n 0.4799619 = queryWeight(body:easter^0.7999738), product of:\n 0.7999738 = boost\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.49913296 = (MATCH) fieldWeight(body:easter in 327), product of:\n 1.4142135 = tf(termFreq(body:easter)=2)\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.0546875 = fieldNorm(field=body, doc=327)\n 0.33333334 = coord(2/6)\n",
"p5zqzz/node/621":"\n0.14027193 = (MATCH) product of:\n 0.42081577 = (MATCH) sum of:\n 0.21124022 = (MATCH) weight(body:bunni^0.8582874 in 328), product of:\n 0.5523649 = queryWeight(body:bunni^0.8582874), product of:\n 0.8582874 = boost\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.38242877 = (MATCH) fieldWeight(body:bunni in 328), product of:\n 1.4142135 = tf(termFreq(body:bunni)=2)\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.0390625 = fieldNorm(field=body, doc=328)\n 0.20957555 = (MATCH) weight(body:easter^0.7999738 in 328), product of:\n 0.4799619 = queryWeight(body:easter^0.7999738), product of:\n 0.7999738 = boost\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.4366504 = (MATCH) fieldWeight(body:easter in 328), product of:\n 1.7320508 = tf(termFreq(body:easter)=3)\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.0390625 = fieldNorm(field=body, doc=328)\n 0.33333334 = coord(2/6)\n",
"p5zqzz/node/1204":"\n0.10955032 = (MATCH) product of:\n 0.32865095 = (MATCH) sum of:\n 0.10455858 = (MATCH) weight(body:bunni^0.8582874 in 432), product of:\n 0.5523649 = queryWeight(body:bunni^0.8582874), product of:\n 0.8582874 = boost\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.1892926 = (MATCH) fieldWeight(body:bunni in 432), product of:\n 1.0 = tf(termFreq(body:bunni)=1)\n 6.9227004 = idf(docFreq=116, maxDocs=43690)\n 0.02734375 = fieldNorm(field=body, doc=432)\n 0.22409238 = (MATCH) weight(body:easter^0.7999738 in 432), product of:\n 0.4799619 = queryWeight(body:easter^0.7999738), product of:\n 0.7999738 = boost\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.09296464 = queryNorm\n 0.46689618 = (MATCH) fieldWeight(body:easter in 432), product of:\n 2.6457512 = tf(termFreq(body:easter)=7)\n 6.453766 = idf(docFreq=186, maxDocs=43690)\n 0.02734375 = fieldNorm(field=body, doc=432)\n 0.33333334 = coord(2/6)\n"},
"filter_queries":["{!tag=sites}sm_sitename:(FCM OR BCM OR CCM)"],
"parsed_filter_queries":["sm_sitename:FCM sm_sitename:BCM sm_sitename:CCM"]}}
这是指示错误配置的服务器上,或者是不正确地索引的内容,还是查询需要改变?
我可以将其用于查询分析器上的文本字段吗? – ebeyrent 2012-03-28 21:02:51
查询解析器不使用标记器或字符过滤器,因此您需要在将格式发送到Solr之前将其格式化。如果它们只是实体,比如' ',那么编程语言中可能有一个unescape库函数。 – 2012-03-28 21:06:21
非常感谢您的帮助!我最终在查询和索引分析器中添加了带有HTMLStripCharFilterFactory的另一个文本字段,因此我可以对原始未转义的html进行索引。我的搜索查询然后在MLT查询中使用此字段。 – ebeyrent 2012-03-28 22:57:43