Yes, I mean http://modules.processwire.com/modules/indexer/
Thanks for your help. But it was not directly a problem with the charset. In the file “Indexer.module” on the line 310 was a preg_replace, which allows no German umlaute. So I replaced
$text = preg_replace('/[^A-za-z0-9]/', ' ', $text);
through
$text = preg_replace('/[^A-za-z0-9äöüÄÖÜ]/', ' ', $text);
and now it works
I think for my second problem is also the file “Indexer.module” the solution. I tried something but it doesn’t works.
foreach ($fields as $field):
// Check if there are Repeaters
if( $field->type == "FieldtypeRepeater" ):
foreach( $page->get($field->name) as $repeater ):
// Now we cicle trough all fields of repeaters.
foreach( $repeater->fields as $rep_field ):
$fulltext .= $this->extractTextFromField($rep_field, $repeater);
endforeach;
endforeach;
//Fieldtype Page
elseif( $field->type == "FieldtypePage" ):
foreach( $page->get($field->name) as $fieldtype_page):
// Now we cicle trough all fields of the page.
foreach( $fieldtype_page->fields as $page_field ):
//Check if there are Repeaters
if( $page_field->type == "FieldtypeRepeater" ):
foreach( $page->get($page_field->name) as $repeater_page ):
// Now we cicle trough all fields of repeaters.
foreach( $repeater_page->fields as $rep_field ):
$fulltext .= $this->extractTextFromField($rep_field, $repeater_page);
endforeach;
endforeach;
else:
$fulltext .= $this->extractTextFromField($page_field, $fieldtype_page);
endif;
endforeach;
endforeach;
//End Pagefield
else:
$fulltext .= $this->extractTextFromField($field, $page);
endif;