0

我有一个关于dismax的问题​​。

我有这个查询:

/itas?q=privacy%20policy&debugQuery=true&wt=xml&indent=on&pf=title^99&ps=2&mm=2&ps=2&qs=2

我在打开 debugQuery 的情况下得到了这个响应

 <lst name="debug">
    <str name="rawquerystring">privacy policy</str>
    <str name="querystring">privacy policy</str>
    <str name="parsedquery">
+((DisjunctionMaxQuery((text:privacy)~0.01) DisjunctionMaxQuery((text:polici)~0.01))~2) DisjunctionMaxQuery((title:"privacy polici"~2^99.0)~0.01)
    </str>
    <str name="parsedquery_toString">
+(((text:privacy)~0.01 (text:polici)~0.01)~2) (title:"privacy polici"~2^99.0)~0.01
    </str>


    <lst name="explain">
        <str name="http://blah.com/">
0.0 = (MATCH) sum of: 0.0 = (MATCH) sum of: 0.0 = (MATCH) weight(text:privacy in 0), product of: 7.610095E-4 = queryWeight(text:privacy), product of: 1.0009153 = idf(docFreq=1091, maxDocs=1093) 7.603136E-4 = queryNorm 0.0 = (MATCH) fieldWeight(text:privacy in 0), product of: 1.4142135 = tf(termFreq(text:privacy)=2) 1.0009153 = idf(docFreq=1091, maxDocs=1093) 0.0 = fieldNorm(field=text, doc=0) 0.0 = (MATCH) weight(text:polici in 0), product of: 7.6379965E-4 = queryWeight(text:polici), product of: 1.004585 = idf(docFreq=1087, maxDocs=1093) 7.603136E-4 = queryNorm 0.0 = (MATCH) fieldWeight(text:polici in 0), product of: 1.0 = tf(termFreq(text:polici)=1) 1.004585 = idf(docFreq=1087, maxDocs=1093) 0.0 = fieldNorm(field=text, doc=0)
        </str>

我在 parsedquery_toString 部分看到标题被查询“隐私策略”,但为什么在响应中不考虑相同的字符串?一切都分为“隐私”和“政策”

4

3 回答 3

0

那么你必须搜索q="privacy polici"

于 2012-06-19T14:36:13.410 回答
0

您实际上是否有任何与该短语查询匹配的文档?在我看来是正确的。该短语不会出现在由单个单词短语匹配但与该短语不匹配的文档的解释中。文档的分数将仅包括匹配的术语 \ 短语。

于 2014-03-25T15:33:01.030 回答
0

看起来搜索只在文本字段而不是标题字段上完成

使用 pf(短语字段)时要注意的是它只影响结果的提升,但不影响匹配。

因此,如果您没有通过 title 字段获得结果,请回顾架构,并确保 title 字段为 (indexed = true),也许这就是原因。

如果您将得到的响应的架构和示例放入其中,也许您可​​以获得更多帮助

于 2014-03-26T02:26:54.680 回答