Solr JSON вывод из массива в строку - PullRequest
0 голосов
/ 01 февраля 2019

Это то, что происходит, когда я выполняю запрос через интерфейс пользователя.

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "q":"*:*",
      "_":"1548964207972"}},
  "response":{"numFound":10,"start":0,"docs":[
      {
        "date":"2018-12-07T06:00:00Z",
        "Problem":["unlock a user"],
        "id":"1",
        "Solution":["solution to unlock"],
        "_version_":1624206363327463424},
      {
        "date":"2018-12-07T06:00:00Z",
        "Problem":["unlock another user"],
        "id":"2",
        "Solution":["solution 2"],
        "_version_":1624206363330609152},
      {

Вы можете видеть, что и Problem, и Solution выводятся как массивы.Это вызвало другие проблемы в моем проекте.Я полагаю, что это из-за того, как настроена моя схема.

И Problem, и Solution text_general, проиндексированы и не сохранены.

Я считаю, что проблема связана смоя схема solr, потому что эти поля в моей базе данных - только текст utf8_unicode_ci.Ниже приведен раздел для text_general в моей схеме:

  <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>

Как только мой проект получает вывод json, он должен считать символы в Solution, поэтому мне нужно, чтобы вывод был текстом.

edit: использование console.log(Solution); в приложении с использованием solr показывает, что это массив.

["solution 2"]0: "solution 2"length: 1__proto__: Array(0)

ToWhomItMayConcern Я новый кодер и пытаюсь структурировать свой вопрос так, чтобы он был полезен для других начинающих, если у вас естьпроблемы с моим вопросом или верьте, что я мог бы включить дополнительную информацию или примеры того, что я пробовал, пожалуйста, дайте мне знать.На самом деле пытаюсь исследовать достаточно, прежде чем приводить мои проблемы здесь.

1 Ответ

0 голосов
/ 01 февраля 2019

Если вы заметили в определении схемы, у вас есть multiValued="true".

Изменение этого значения на «false» должно помешать вашим полям быть массивами.

Естественно, когда вы меняете свою схему, вам нужно будет переиндексировать данные, уже находящиеся в поисковом индексе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...