Hi,

I am implementing searching using SOLR 5.0 and facing very strange problem.
I am having 4 fields Name and address, city and state in the document apart
from a unique ID.

My requirement is that it should give me those results first where there is
a match in name , then address, then state, city

Scenerio 1 : When searching *louis*
My query params is something like below
 q: person_full_name:*louis* OR address1:*louis* OR city:*louis* OR
state_code:*louis*
 qf: person_full_name^5.0 address1^0.8 city^0.7 state_code^1.0
 defType: edismax

 This is not giving results as per boost mentioned in qf param. This is
giving me result where city is getting matched first.
Score is coming as below:

 "explain": {
      "11470307": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(person_full_name:*louis*),
product of:\n        1.0 = boost\n        0.0015872642 = queryNorm\n
 0.09090909 = coord(1/11)\n",
      "11470282": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(person_full_name:*louis*),
product of:\n        1.0 = boost\n        0.0015872642 = queryNorm\n
 0.09090909 = coord(1/11)\n",
      "11470291": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(city:*louis*), product of:\n
  1.0 = boost\n        0.0015872642 = queryNorm\n    0.09090909 =
coord(1/11)\n",
      "11470261": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(person_full_name:*louis*),
product of:\n        1.0 = boost\n        0.0015872642 = queryNorm\n
 0.09090909 = coord(1/11)\n",
      "11470328": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(person_full_name:*louis*),
product of:\n        1.0 = boost\n        0.0015872642 = queryNorm\n
 0.09090909 = coord(1/11)\n",
      "11470331": "\n1.4429675E-4 = (MATCH) sum of:\n  1.4429675E-4 =
(MATCH) product of:\n    0.0015872642 = (MATCH) sum of:\n
0.0015872642 = (MATCH) ConstantScore(person_full_name:*louis*),
product of:\n        1.0 = boost\n        0.0015872642 = queryNorm\n
 0.09090909 = coord(1/11)\n"
    },


Scenerio 2: But when I am matching 2 keywords. *louis cen*


 "explain": {
      "11470286": "\n0.9805807 = (MATCH) product of:\n  1.9611614 =
(MATCH) sum of:\n    0.49029034 = (MATCH) max of:\n      0.49029034 =
(MATCH) ConstantScore(person_full_name:*cen*^5.0)^5.0, product of:\n
     5.0 = boost\n        0.09805807 = queryNorm\n    0.49029034 =
(MATCH) max of:\n      0.49029034 = (MATCH)
ConstantScore(person_full_name:*cen*^5.0)^5.0, product of:\n
5.0 = boost\n        0.09805807 = queryNorm\n    0.49029034 = (MATCH)
max of:\n      0.49029034 = (MATCH)
ConstantScore(person_full_name:*cen*^5.0)^5.0, product of:\n
5.0 = boost\n        0.09805807 = queryNorm\n    0.49029034 = (MATCH)
max of:\n      0.49029034 = (MATCH)
ConstantScore(person_full_name:*cen*^5.0)^5.0, product of:\n
5.0 = boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470284": "\n0.15689291 = (MATCH) product of:\n  0.31378582 =
(MATCH) sum of:\n    0.078446455 = (MATCH) max of:\n      0.078446455
= (MATCH) ConstantScore(address1:*cen*^0.8)^0.8, product of:\n
0.8 = boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH)
max of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470232": "\n0.15689291 = (MATCH) product of:\n  0.31378582 =
(MATCH) sum of:\n    0.078446455 = (MATCH) max of:\n      0.078446455
= (MATCH) ConstantScore(address1:*cen*^0.8)^0.8, product of:\n
0.8 = boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH)
max of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11469707": "\n0.15689291 = (MATCH) product of:\n  0.31378582 =
(MATCH) sum of:\n    0.078446455 = (MATCH) max of:\n      0.078446455
= (MATCH) ConstantScore(address1:*cen*^0.8)^0.8, product of:\n
0.8 = boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH)
max of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470341": "\n0.15689291 = (MATCH) product of:\n  0.31378582 =
(MATCH) sum of:\n    0.078446455 = (MATCH) max of:\n      0.078446455
= (MATCH) ConstantScore(address1:*cen*^0.8)^0.8, product of:\n
0.8 = boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH)
max of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470349": "\n0.15689291 = (MATCH) product of:\n  0.31378582 =
(MATCH) sum of:\n    0.078446455 = (MATCH) max of:\n      0.078446455
= (MATCH) ConstantScore(address1:*cen*^0.8)^0.8, product of:\n
0.8 = boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH)
max of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n    0.078446455 = (MATCH) max
of:\n      0.078446455 = (MATCH)
ConstantScore(address1:*cen*^0.8)^0.8, product of:\n        0.8 =
boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470250": "\n0.11766969 = (MATCH) product of:\n  0.23533937 =
(MATCH) sum of:\n    0.058834843 = (MATCH) max of:\n      0.058834843
= (MATCH) ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n
     0.6 = boost\n        0.09805807 = queryNorm\n    0.058834843 =
(MATCH) max of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n    0.058834843 = (MATCH) max
of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n    0.058834843 = (MATCH) max
of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11469726": "\n0.11766969 = (MATCH) product of:\n  0.23533937 =
(MATCH) sum of:\n    0.058834843 = (MATCH) max of:\n      0.058834843
= (MATCH) ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n
     0.6 = boost\n        0.09805807 = queryNorm\n    0.058834843 =
(MATCH) max of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n    0.058834843 = (MATCH) max
of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n    0.058834843 = (MATCH) max
of:\n      0.058834843 = (MATCH)
ConstantScore(specialization:*cen*^0.6)^0.6, product of:\n        0.6
= boost\n        0.09805807 = queryNorm\n  0.5 = coord(4/8)\n",
      "11470307": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH)
ConstantScore(person_full_name:*louis*), product of:\n      1.0 =
boost\n      0.09805807 = queryNorm\n  0.125 = coord(1/8)\n",
      "11470282": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH)
ConstantScore(person_full_name:*louis*), product of:\n      1.0 =
boost\n      0.09805807 = queryNorm\n  0.125 = coord(1/8)\n",
      "11470291": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH) ConstantScore(city:*louis*),
product of:\n      1.0 = boost\n      0.09805807 = queryNorm\n  0.125
= coord(1/8)\n",
      "11470261": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH)
ConstantScore(person_full_name:*louis*), product of:\n      1.0 =
boost\n      0.09805807 = queryNorm\n  0.125 = coord(1/8)\n",
      "11470328": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH)
ConstantScore(person_full_name:*louis*), product of:\n      1.0 =
boost\n      0.09805807 = queryNorm\n  0.125 = coord(1/8)\n",
      "11470331": "\n0.012257258 = (MATCH) product of:\n  0.09805807 =
(MATCH) sum of:\n    0.09805807 = (MATCH)
ConstantScore(person_full_name:*louis*), product of:\n      1.0 =
boost\n      0.09805807 = queryNorm\n  0.125 = coord(1/8)\n"
    },


SO THE ISSUE IS THAT SOMETIMES IT IS TAKING FILTER BUT NOT ALWAYS. What
could be the reason.

Here is tokenizer and fileter I am using:

<analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
   <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    <analyzer type="query">
   <tokenizer class="solr.StandardTokenizerFactory"/>
   <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>

Any help on this would be appriciable.

Thanks,
Sandeep

Reply via email to