EXCELLENT, dude! That's exactly what I was looking for.
Rock on!
thanks again,
-Andy
On May 28, 2013, at 1:57 PM, Curtis Gallant wrote:
> **
> 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
> _ARSlist: "Where the Answers Are" and have been for 20 years_
_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
"Where the Answers Are, and have been for 20 years"