Как отсортировать по голосам ответы, содержащие хотя бы 1 картинку?

Aug 18 2020

Мне всегда нравился тег [visualization] в Math SE и сообщения вроде « Визуально ошеломляющие математические концепции», которые легко объяснить . Некоторые люди лучше всего учатся визуально. Другие SE, такие как Math Educators и Chemistry, не имеют этого тега, но, несомненно, они оба используют изображения.

  1. Итак, как я могу увидеть список ответов, отсортированных по голосам, которые содержат хотя бы одну картинку?

  2. Можно ли отсортировать по второму критерию: количеству текста в ответе? Тогда я могу увидеть, какие посты с хотя бы одним изображением содержат меньше всего сопроводительного текста.

Ответы

1 rene Aug 19 2020 at 01:55

Вот еще один запрос SEDE .

Я придерживаюсь немного другого подхода. Вместо поиска в html (который находится в поле Posts.body) я использую фактическую уценку в качестве источника. Это более сложно (и работает хуже), потому что таблица PostHistory содержит все версии сообщения, а не только последнюю. Так что я немного жонглирую, чтобы найти последнюю версию. В этом тексте я использую ту же технику, которую использовал Глорфиндель: утверждение Like, но я ищу ![ ][ ]уценку. Вместо длины текста я добавил приблизительное количество слов.

Чтобы SEDE был доволен, я составляю ТОП-1000.

select top 1000
       a.id as [Post Link]
     , a.creationdate
     , a.score
     , len(text)-len(replace(text,' ','')) [~ word count]
from posts a
inner join posts q on q.id = a.parentid
inner join (
select postid, 
       text
from posthistory phi
where id = (select max(id) 
            from posthistory ph
            where ph.postid = phi.postid
            and ph.posthistorytypeid in (2,5,8))
) md on md.postid = a.id
where a.posttypeid = 2 -- answers
and (
  md.text like '%![[]%][[]%]%' 
  --or 
  --md.text like '%![%](%)%' or 
  --md.text like '%<img src="%"%'
  )
order by 4 desc

Вот как выглядит результат:

Имейте в виду, что SEDE обновляется раз в неделю в воскресенье.
Воспользуйтесь прекрасным учебником SEDE, написанным замечательной Моникой Челлио .
Скажите «Привет» в чате SEDE .

5 Tinkeringbell Aug 18 2020 at 15:57

Наилучшие результаты вы, вероятно, получите с SEDE, поскольку он должен учитывать ваш второй критерий (сортировка по длине сообщения).

Но для первой части вы можете использовать поиск: [visualization] url:"*.jpg*" is:aнайти ответы в теге визуализации, в котором есть изображение, а затем отсортировать результаты по голосам.

Как сказал Мартин в комментариях под вашим вопросом, чтобы найти как можно больше ответов, вы можете поискать несколько URL-адресов, содержащих imgur, png, jpg и gif.

5 Glorfindel Aug 18 2020 at 16:19

Вот запрос SEDE, в котором перечислены все ответы хотя бы с одним изображением. Выяснить, сколько текста в ответе, слишком сложно (по крайней мере, для меня), поэтому я остановился на общей длине ответа, которая должна дать хорошее представление.

Обратите внимание, что SEDE обновляется только раз в неделю, в воскресенье утром, и в настоящее время у него есть некоторые проблемы с доступностью . Кроме того, подобный поиск в полной таблице сообщений, вероятно, не работает на крупных сайтах, таких как Mathematics; он действительно работает для преподавателей химии и математики. Возможно, вам потребуется разветвить запрос, например, чтобы ограничить поиск определенными тегами, минимальным счетом или датой публикации. Проверьте удивительный учебник , если вы новичок в SEDE или SQL в целом.