While you've gotten some direction with FT_Pending which is good, to answer
your original question on a query for seeing what fields are currently set
to be indexed (full list)... you simply look to see what fields have FTS
attribute set. FTS will work against character, diary and attachment
fields so you just need to query those field_* tables and see where the
fullTextOptions is set to '1'.
e.g.
select schemaId, fieldId from field_char where fullTextOptions = '1'
UNION
select schemaId, fieldId from field_diary where fullTextOptions = '1'
UNION
select schemaId, fieldId from field_attach where fullTextOptions = '1'
If you want to use that to pull in field names and form names you can
easily build out the query to pull that in with the info provided by also
querying the field table and arschema table.
Hope this helps.
Also, to get at this info via Java API, you could have a method that looks
something this to give a CSV style output of "Form Name","Field
Name","Field ID":
public static void getFTSIndexedFields() {
try {
List<String> schemaList = server.getListForm(0,
Constants.AR_LIST_SCHEMA_ALL_WITH_DATA|Constants.AR_HIDDEN_INCREMENT);
System.out.println("\"Schema Name\",\"Field Name\",\"Field ID\"");
for (String schema : schemaList) {
List<Field> schemaFields = server.getListFieldObjects(schema,
Constants.AR_FIELD_TYPE_DATA);
for (Field field : schemaFields) {
FieldLimit fLimit = field.getFieldLimit();
if (fLimit != null) {
if (fLimit.getDataType() == Constants.AR_DATA_TYPE_CHAR)
{
if
(((CharacterFieldLimit)fLimit).getFullTextOption() == 1) {
System.out.println("\"" + schema + "\"," + "\""
+ field.getName() + "\"," + "\"" + field.getFieldID() + "\"");
}
}
else if (fLimit.getDataType() ==
Constants.AR_DATA_TYPE_DIARY) {
if (((DiaryFieldLimit)fLimit).getFullTextOption() ==
1) {
System.out.println("\"" + schema + "\"," + "\""
+ field.getName() + "\"," + "\"" + field.getFieldID() + "\"");
}
}
else if (fLimit.getDataType() ==
Constants.AR_DATA_TYPE_ATTACH ) {
if
(((AttachmentFieldLimit)fLimit).getFullTextOption() == 1) {
System.out.println("\"" + schema + "\"," + "\""
+ field.getName() + "\"," + "\"" + field.getFieldID() + "\"");
}
}
}
}
}
} catch (ARException e) {
System.out.println(e.getMessage());
}
}
Cheers,
On Tue, May 28, 2013 at 1:43 PM, Andrew Hicox <[email protected]> wrote:
> Hello everyone,
>
> I currently find myself in the third circle of ARS hell ... debugging FTS
> on ARS 7.6.03 (it's a long story on why we're not on 7.6.04 yet, but
> suffice it to say, I have no immediate control of that situation).
>
> We have had an FTS re-index procedure running for more than a month now. I
> need to get an idea on where it is, and how much longer it needs to finish.
> I can trace some of this through the arftsindex.log(s). It seems to iterate
> per-form, per-indexed field. So ... form A, indexed field 1 ... then
> indexed field 2, etc, etc cycling through every record in the form N times
> where N is the number of indexed columns in the form.
>
> So ... part of this is that I need to be able to know exactly how many
> such fields and forms I'm looking at.
> I need a better way of doing this than to open each form on the server,
> and pick through the field properties on every form.
>
> I've tried running the sql log on server startup to try and capture
> whatever it is the ft dispatcher executes in the DB to find the indexed
> fields, but if it's there I sure as heck can't find it. There do not appear
> to be any obvious columns on the 'FIELD' table that would indicate FTS
> indexing mode, nor do there appear to be any adjunct tables (like the
> various FIELD_* tables) that would contain this data.
>
> I'd like very much to be able to execute a query on the DB that would
> return schemaid and fieldid of all the fields that the FTS indexer is going
> to try and run through.
>
> Does anyone know of a way to do this?
>
> -Andy
>
> _______________________________________________________________________________
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> "Where the Answers Are, and have been for 20 years"
>
--
:wq cuga
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
"Where the Answers Are, and have been for 20 years"