当我使用PHP的Solr插件进行查询(例如'gluue')时,我会在使用Solr的基于url的系统时得到不同的拼写检查结果。
http://xxx:8080/solr/example/browse?q=gluue%0A&wt=xml&spellcheck=true
返回:
<lst name="spellcheck"><lst name="suggestions"><lst name="gluue"><int name="numFound">10</int><int name="startOffset">0</int><int name="endOffset">5</int><arr name="suggestion"><str>glue</str><str>gauge</str><str>glide</str><str>glove</str><str>glued</str><str>globe</str><str>glaze</str><str>gluten</str><str>gauze</str><str>glues</str></arr></lst><lst name="collation"><str name="collationQuery">glue
</str><int name="hits">74</int><lst name="misspellingsAndCorrections"><str name="gluue">glue</str></lst></lst><lst name="collation"><str name="collationQuery">gauge
</str><int name="hits">6</int><lst name="misspellingsAndCorrections"><str name="gluue">gauge</str></lst></lst><lst name="collation"><str name="collationQuery">glide
</str><int name="hits">7</int><lst name="misspellingsAndCorrections"><str name="gluue">glide</str></lst></lst></lst></lst>
PHP插件(复制上面的查询,确切地在solrs日志文件中确认)
[spellcheck] => SolrObject Object
(
[suggestions] => SolrObject Object
(
[gluue] => SolrObject Object
(
[numFound] => 10
[startOffset] => 0
[endOffset] => 5
[suggestion] => Array
(
[0] => glue
[1] => gauge
[2] => glide
[3] => glove
[4] => glued
[5] => globe
[6] => glaze
[7] => gluten
[8] => gauze
[9] => glues
)
)
[collation] => SolrObject Object
(
[collationQuery] => glide
[hits] => 7
[misspellingsAndCorrections] => SolrObject Object
(
[gluue] => glide
)
)
)
)
请注意第一个响应中的3个collationQuery值,而PHP插件中只有一个。
老板喜欢第一个响应(“胶水”)更好,所以我将不得不绕过插件只是为了拼写检查功能(并为我的系统添加一个额外的查询)因此。有任何想法吗?我真的想避免这种情况。