Wenn ich halbwegs verstehe, was du meinst, dann suchst du vermutlich Untereinträge zu einem Indexeintrag. In der Voreinstellung von `makeindex` werden diese innerhalb des Index-Befehls mit einem `!` vom Haupteintrag getrennt:
\documentclass[a4paper,index=totoc]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage[]{hyperref}
\usepackage[makeindex,split,idxcommands]{splitidx}
\newindex[Allgemeiner Index]{regist}
\renewcommand*{\regist}[2][]{%
\ifstr{#1}{M}{% \Ifstr{#1}{M}{% Falls das optionale Argument zu einem M expandiert:
\sindex[regist]{Mengenlehre!#2}% Methode 1: Untereintrag
\sindex[regist]{#2 (Mengenlehre)}% Methode 2: Eintrag mit Zusatz
}{%
\ifstr{#1}{A}{% \Ifstr{#1}{A}{% Falls das optionale Argument zu einem A expandiert:
\sindex[regist]{Aussagelogik!#2}% Methode 1: Untereintrag
\sindex[regist]{#2 (Aussagelogik)}% Methode 2: Eintrag mit Zusatz
}{% In allen anderen Fällen:
\sindex[regist]{#2}% Unveränderter Eintrag
}%
}%
}
\newindex[Personenindex]{pers}
\begin{document}
\section{Mengenlehre}
kommutativ\regist[M]{kommutativ}
assoziativ\regist[M]{assoziativ}
Menge\regist{Menge}
Person 1\pers{Person 1}
\newpage
\section{Aussagenlogik}
kommutativ\regist[A]{kommutativ}
assoziativ\regist[A]{assoziativ}
Normalformen\regist[A]{Normalformen}
Person 2\pers{Person 2}
\printindex[regist]
\printindex[pers]
\end{document}
Die Methode des Unterindex-Eintrags wird von `makeindex` bisher für bis zu drei Ebenen von Index-Einträgen unterstützt, also auch `\index{Eintrag!Untereintrag!Unteruntereintrag}`.
Ich habe als zweite Methode außerdem noch eingebaut, Index-Einträge mit einem automatischen Zusatz zu versehen. Ob beide Methoden gemischt oder nur eine der Methoden sinnvoll ist, sei dem Anwender überlassen.
Falls ich mit meinem Verdacht falsch liege und wie von saputello vermutet, wirklich für jeden Abschnitt ein eigener Index gewünscht wird, müsste man natürlich auch für den Abschnitt einen solchen mit `\newindex` anlegen. Dann sollte man allerdings auf Option `split` verzichten und wirklich `splitindex` aufrufen, um die `idx`-Datei in mehrere aufzuspalten und mit `makeindex` zu verarbeiten. Anderenfalls erhält man (außer bei Verwendung von LuaLaTeX) sehr schnell einen „no room for new `\write`”-Fehler.
---
Die Zusatzfrage lasse ich unbeantwortet, da ich es ebenfalls nicht für sinnvoll halte, wenn das Wort statt der Seitenzahlen anklickbar ist (einfaches Beispiel, warum das so ist:
\documentclass{article}
\usepackage{imakeidx}
\makeindex
\usepackage{hyperref}
\usepackage{blindtext}
\begin{document}
Das ist ein Blindtext\index{Blindtext}. \Blindtext[6]
Das ist ein Blindtext\index{Blindtext}. \Blindtext[6]
Das ist ein Blindtext\index{Blindtext}. \Blindtext[6]
Das ist ein Blindtext\index{Blindtext}. \Blindtext[6]
\printindex
\end{document}
Wohin sollte „Blindtext” in dem Beispiel springen? Seite 1, die im Bis-Strich versteckte Seite 2, Seite 3 oder Seite 5?) Solltest du auf die Zusatzfrage bestehen, solltest du sie mit entsprechender Erklärung und klarer Spezifikation als neue Frage stellen.