Come posso ordinare le risposte che comprendono almeno un'immagine in base ai voti?

Aug 18 2020

Ho sempre amato il tag [visualizzazione] di Math SE e post come concetti matematici visivamente sbalorditivi che sono facili da spiegare . Alcune persone imparano meglio visivamente. Altri SE come Math Educators e Chemistry non hanno questo tag, ma senza dubbio entrambi usano immagini.

  1. Allora come posso vedere un elenco di risposte, ordinate per voti, che comprendono almeno un'immagine?

  2. È possibile ordinare in base a un secondo criterio: il numero di testo in quella risposta? Quindi posso vedere quali post con almeno un'immagine ha il testo meno e più di accompagnamento.

Risposte

1 rene Aug 19 2020 at 01:55

Ecco un'altra domanda SEDE .

Adotto un approccio leggermente diverso. Invece di cercare nell'html (che si trova nel campo Posts.body) utilizzo il markdown effettivo come fonte. Questo è più complicato (e funziona peggio) perché la tabella PostHistory contiene tutte le revisioni di un post, non solo l'ultima. Quindi faccio un po 'di giocoleria per trovare l'ultima revisione. In quel testo uso la stessa tecnica usata da Glorfindel: un'istruzione Like ma cerco il ![ ][ ]markdown. Invece della lunghezza del testo ho aggiunto una stima approssimativa del conteggio delle parole.

Per mantenere SEDE felice faccio una TOP 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

Questo è l'aspetto del risultato:

Tieni presente che SEDE viene aggiornato una volta alla settimana la domenica.
Usa il bel Tutorial SEDE scritto dall'ammirevole Monica Cellio .
Dì "Ciao" nella chat di SEDE .

5 Tinkeringbell Aug 18 2020 at 15:57

I migliori risultati che probabilmente otterrai con SEDE, poiché dovrebbe consentire il tuo secondo criterio (ordinamento per lunghezza del post).

Ma per la prima parte, puoi usare una ricerca: [visualization] url:"*.jpg*" is:aper trovare risposte all'interno del tag di visualizzazione che hanno un'immagine, quindi ordinare i risultati in base ai voti.

Come ha detto Martin nei commenti sotto la tua domanda, per trovare quante più risposte possibili potresti voler cercare più URL, contenenti imgur, png, jpg e gif.

5 Glorfindel Aug 18 2020 at 16:19

Ecco una query SEDE che elenca tutte le risposte con almeno un'immagine. Capire quanto testo ha una risposta è troppo difficile (almeno per me) quindi ho deciso per la lunghezza totale della risposta che dovrebbe dare una buona indicazione.

Nota che SEDE viene aggiornato solo una volta alla settimana, la domenica mattina, e attualmente presenta alcuni problemi di disponibilità . Inoltre, la ricerca nella tabella Post completa in questo modo probabilmente non funziona su siti più grandi come Mathematics; funziona per gli insegnanti di chimica e matematica. Potrebbe essere necessario eseguire il fork della query, ad esempio per limitare la ricerca a determinati tag, punteggio minimo o data di pubblicazione. Dai un'occhiata al fantastico tutorial se sei nuovo in SEDE o SQL in generale.