2012-03-28 6 views
0

Ich habe eine Solr MoreLikeThis Abfrage, die einige eindeutig nicht verwandte Ergebnisse produziert. Wenn ich das Debugging für die Abfrage anschaue, kann ich erkennen, dass die Abfrage bei Newline-Zeichen übereinstimmt.Solr MoreLikeDiese Abfrage entspricht Newline-Zeichen

Hier ist die Abfrage:

mlt q = is_lesson_id: 49029 & start = 0 & rows = 3 & fl = *, & wt = json & fq = sm_sitename Score {tag = Seiten!}: (FCM OR BCM OR CCM) & mlt.interestingTerms = Details & mlt.match.include = false & mlt.match.offset = 0 & mlt.fl = title, Körper & mlt.mintf = 2 & mlt.mindf = 1 & mlt. minwl = 4 & mlt.boost = true & mlt.qf = Titel^1000 Körper & indent = auf & debugQuery = auf

Hier ist das erklären:

"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"]}} 

Ist dies ein Hinweis auf eine Fehlkonfiguration auf dem Server, oder ist der Inhalt nicht ordnungsgemäß indiziert, oder hat die Abfrage Bedarf geändert werden?

Antwort

1

Indexieren Sie HTML? Möglicherweise möchten Sie das HTML-Markup aus dem Text am Anfang der Filterpipeline entfernen. Weitere Informationen finden Sie unter HtmlStripCharFilter auf dieser Seite: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory

+0

Kann ich das für Textfelder auf dem Abfrageanalysator verwenden? – ebeyrent

+0

Der Abfrageparser verwendet nicht die Tokenizer oder die Zeichenfilter. Daher müssen Sie die Formatierung entfernen, bevor Sie sie an Solr senden. Wenn es sich nur um Entitäten wie ' ' handelt, gibt es wahrscheinlich eine Unescape-Bibliotheksfunktion, die in Ihrer Programmiersprache verfügbar ist. –

+0

Vielen Dank für die Hilfe! Am Ende habe ich ein weiteres Textfeld mit der HTMLStripCharFilterFactory sowohl für die Abfrage- als auch für die Indexanalysatoren hinzugefügt, so dass ich die unformatierte HTML-Datei indexieren kann. Meine Suchanfrage verwendet dann dieses Feld in der MLT-Abfrage. – ebeyrent