繁体   English   中英

如何在Solr中搜索短语

[英]How to search for phrases in solr

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

我有这个查询:

/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部分中看到标题被查询为“ privacy polici”,但是为什么在响应中不考虑相同的字符串呢? 一切都分为“隐私”和“政策”

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

您实际上是否有任何匹配该短语查询的文档? 在我看来,这是正确的。 对于单词短语匹配但不匹配的文档,说明中不会显示该短语。 文档的分数将仅包含匹配的术语\\短语。

看起来只在文本字段而不是标题字段上进行了搜索

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

因此,如果标题栏没有增加结果,请查看架构,并确保标题栏为(indexed = true),也许就是这个原因。

也许您可以获得更多帮助,如果您放入响应的模式和样本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM