#mysql #sql #solr
#mysql #sql #solr
Вопрос:
Я хочу преобразовать следующий SQL-запрос в запрос solr
select
Sentences.sentenceid, sentence, languagecode
from
Sentences
where
sentenceid in (select translatedid
from SentencesRelationship
where sentenceid = '3152');
Большое вам спасибо!
Комментарии:
1. попробуйте использовать fq в своем запросе
2. Это будет соответствовать тому, что Solr называет соединением: lucene. apache.org/solr/guide/7_2 /…
3. @MatsLindh Не могли бы вы продемонстрировать анализатор запросов Join для моего случая?. Я не совсем понимаю
q = {!join from=id to=manu_id_s}compName_s:Belkin
Ответ №1:
Давайте предположим, что у вас есть два ядра SOLR: 1. предложения (sentenceId, предложение, языковой код) 2. sentencesRelationship (sentenceId, translatedId)
Со следующими данными:
предложения:
sentenceId, sentence, languageCode
1, sentence1, lang1
2, sentence2, lang2
3, sentence3, lang3
sentencesRelationship:
sentenceId, translatedId
1, 101
2, 102
Существует несколько решений для создания соединения в SOLR. Можно было бы использовать innerJoin в StreamingExpression:
innerJoin(
search(sentences, q="*:*", fl="sentenceId, sentence, languagecode", sort="sentenceId asc", qt="/export"),
search(sentencesRelationship, q="sentenceId:3152",
fl="sentenceId, translatedId", sort="sentenceId asc", qt="/export"),
on="sentenceId"
)