#solr
#solr
Вопрос:
у меня возникла проблема при группировании моих ngrams. мой запрос
http://localhost:8983/solr/archiveCore/select?group.field=strSOamp;group=trueamp;q=strSO:*amp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO
он показывает правильные результаты для меня в веб-браузере (Chrome), например
{
"responseHeader":{
"status":0,
"QTime":51,
"params":{
"q":"strSO:*",
"indent":"true",
"fl":"strSO",
"start":"0",
"rows":"2147483647",
"wt":"json",
"group.field":"strSO",
"group":"true"}},
"grouped":{
"strSO":{
"matches":112559,
"groups":[{
"groupValue":"EV11777-01",
"doclist":{"numFound":53,"start":0,"docs":[
{
"strSO":"EV11777-01"}]
}},
{
"groupValue":"EV15872-01",
"doclist":{"numFound":1829,"start":0,"docs":[
{
"strSO":"EV15872-01"}]
}},
{
"groupValue":"EV16143-02",
"doclist":{"numFound":929,"start":0,"docs":[
{
"strSO":"EV16143-02"}]
}},
{
"groupValue":"E896759-01",
"doclist":{"numFound":888,"start":0,"docs":[
{
"strSO":"E896759-01"}]
}},
{
"groupValue":"E893257-02",
"doclist":{"numFound":1250,"start":0,"docs":[
{
"strSO":"E893257-02"}]
}},
{
"groupValue":"EV16232-02",
"doclist":{"numFound":999,"start":0,"docs":[
{
"strSO":"EV16232-02"}]
}},
{
"groupValue":"EV12473-01",
"doclist":{"numFound":1545,"start":0,"docs":[
{
"strSO":"EV12473-01"}]
}},
{
"groupValue":"E896479-01",
"doclist":{"numFound":1016,"start":0,"docs":[
{
"strSO":"E896479-01"}]
}},
{
"groupValue":"EV12455-02",
"doclist":{"numFound":1299,"start":0,"docs":[
{
"strSO":"EV12455-02"}]
}},
{
"groupValue":"EV12459-02",
"doclist":{"numFound":1250,"start":0,"docs":[
{
"strSO":"EV12459-02"}]
}},
{
"groupValue":"E876243-01",
"doclist":{"numFound":1238,"start":0,"docs":[
{
"strSO":"E876243-01"}]
}},
{
"groupValue":"E874707-02",
"doclist":{"numFound":1116,"start":0,"docs":[
{
"strSO":"E874707-02"}]
}},
{
"groupValue":"EV12648-02",
"doclist":{"numFound":1025,"start":0,"docs":[
{
"strSO":"EV12648-02"}]
но это не работает на java. я помещаю запрос в jquery моих проектов, и ngram ничего не показывает. я не понимаю, почему он мне ничего не показывает. он хорошо работает в веб-браузере.
вот мой schema.xml для настройки ngrams
<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100" stored="false" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="20"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="2" maxGramSize="20"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Кто-нибудь может помочь мне исправить это??
вот мои коды jquery
<script>
$(function() {
var URL_PREFIX = "http://localhost:8983/solr/archiveCore/select?q=strSO:*";
var URL_SUFFIX = "amp;group.field=strSOamp;group=trueamp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO";
$("#searchBoxstrSO").autocomplete({
source : function(request, response) {
var URL = URL_PREFIX $("#searchBoxstrSO").val() URL_SUFFIX;
$.ajax({
url : URL,
success : function(data) {
var docs = JSON.stringify(data.response.docs);
var jsonData = JSON.parse(docs);
response($.map(jsonData, function(value, key) {
return {
label : value.strSO
}
}));
},
dataType : 'jsonp',
jsonp : 'json.wrf'
});
},
minLength : 1
})
});
$(function() {
var URL_PREFIX = "http://localhost:8983/solr/archiveCore/select?q=strSO:";
var URL_MIDDLE = "OR strSO_ngram:";
var URL_SUFFIX = "amp;group.field=strSOamp;group=trueamp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO";
$("#ngramBoxstrSO").autocomplete(
{
source : function(request, response) {
var searchString = """ $("#ngramBoxstrSO").val() """;
var URL = URL_PREFIX searchString URL_MIDDLE
searchString URL_SUFFIX;
$.ajax({
url : URL,
success : function(data) {
var docs = JSON.stringify(data.response.docs);
var jsonData = JSON.parse(docs);
response($.map(jsonData, function(value, key) {
return {
label : value.strSO
}
}));
},
dataType : 'jsonp',
jsonp : 'json.wrf'
});
},
minLength : 1
})
});
</script>
Комментарии:
1. Разрешено ли вашему запросу jQuery вообще связываться с вашим сервером Solr? Обычно межсайтовые запросы завершаются ошибкой, если они выполняются не на том же хосте, который обслуживал исходный HTML.
2. Запрос, обращающийся к моему серверу Solr. будет ли мой запрос solr таким localhost:8983/solr/archiveCore /select? q= strSO:amp;wt= json ngram показывает мне результаты, но результаты многозначны. я хочу различать их, как в SQL